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
(内部) のアドレスと(内部)main
のアドレスが異なるようです。thisStruct
method
私はCに少し慣れていませんが、ここで何が起こっているのか知っている人はいますか?
このコードは 32 ビット システムでのみ実行されるため、64 ビットの int/address の問題について心配する必要はありません。