由于各种限制,我有一个只接受int
参数的方法。但是,我想将此方法传递给 Struct。
到目前为止,我已经...
main(int argc, char* argv){
Somestructure * name;
//Name is malloced, things are put in it, etc.
int address = (int) &name;
method(address);
}
void method(int arg){
Somestructure* thisStruct = (Somestructure*) arg;
//Do stuff with thisStruct.
}
我认为这将分配thisStruct
指向与 main 方法中的 name 相同的结构,但是当我尝试使用thisStruct
in 时method
,我得到一个总线错误。当我使用此代码时...
int structAddress = (int) &thisStruct;
printf("[Method] Address : %d\n", structAddress);
似乎name
(inside main
) 和thisStruct
(inside method
) 的地址不同。
我对 C 有点陌生,但是,有人知道这里发生了什么吗?
这段代码只能在 32 位系统上运行,所以我不必担心任何 64 位 int/address 问题。