私はCで作業しています。私がやろうとしているのは、オブジェクトを指すアドレスを含むintを返す関数です。次に、受け取ったint(アドレスを含む)を使用して、このアドレスを指すポインターを作成します。
例 :
MyClass* obj = SomeMethodReturningAPointerOfMyClass();
int address = (int) &obj;
return address;
私はそれがこの部分のために働くと思います。私が得る値は-4197276です。(たぶん私は完全に間違っていますか?)
次に、他の部分では、私は次のようなことをしたいと思います:
MyClass* obj = (MyClass*) address;
エラーが発生せずにobjのメソッドにアクセスできないため、これは機能しません。
私はそれを行う方法を見つけました:
MyClass* obj = SomeMethodReturningAPointerOfMyClass();
machine->registers[2] = (int)obj;
次に、私が行った整数を受け取る他の方法で:
MyClass* obj = (MyClass*)address;
私はobjに完全に取り組むことができます!それほどきれいではないかもしれませんが、それはそれが使用されているもののために仕事をするはずです!
回答に時間を割いてくださった皆様、ありがとうございました!