我在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的工作完全! 可能不是那麼幹淨,但它應該爲它的用途做好工作!
感謝大家花時間回答!
'int's不包含內存地址。指針呢。返回一個指針。同樣,你使用「類」這個術語意味着C++,而不是C. –