我在 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 !可能不是那么干净,但它应该可以完成它的用途!
感谢所有花时间回答的人!