kevin@crash.cts.com (Kevin Hill) (03/14/91)
I wish to create functions that return a pointer to a memory location. Similar to malloc. However, whenever the calling function is not in the same file as the pointer returning function, the address returned is only 4 bytes long. I.e. if the address was originally Actual Returned 0x1D1DFFFF 0x0000FFFF 0x3F175432 0x00005432 it seems that only 4 bytes are returning from the function when it is another .c file. HOWEVER, when the calling function and the function itself are in the same .c file, there is not a problem.. The addresses are returned correctly... Any ideas?? I am using The latest version of Think C 3.xxx (Yes I know Think C 4.0 is out, but I am a college student and $60 buys a lot of beer :) ) Here is a copy of the function that is returning the address. struct hub { Point point; struct hub *next; }; typedef struct hub Hub, *HubPtr, **HubHandle; HubPtr cur_bhub(hub,flag) HubPtr hub; int flag; { static HubPtr beg_hub; if (flag != 0) beg_hub = NULL; if (hub != NULL) beg_hub = hub; return(beg_hub); } Thank you in advance -Kevin
wjb@tantalum.eds.com (Bill Biesty) (03/20/91)
In article <7984@crash.cts.com> kevin@crash.cts.com (Kevin Hill) writes:
->
->
->I wish to create functions that return a pointer to a memory location.
->Similar to malloc. However, whenever the calling function is not in the
->same file as the pointer returning function, the address returned is only
->4 bytes long. I.e. if the address was originally
-> Actual Returned
-> 0x1D1DFFFF 0x0000FFFF
-> 0x3F175432 0x00005432
->
->it seems that only 4 bytes are returning from the function when it is
->another .c file. HOWEVER, when the calling function and the function
->itself are in the same .c file, there is not a problem.. The addresses
->are returned correctly...
-> Any ideas??
Hmm. If the function is not declared as returning a pointer in the file
it's called from then it's assumed to be returning an int. This is a
super obvious explanation and I don't have the reference to verify int and
pointer sizes.
Bill