Я работаю в 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;
Я могу отлично работать над объектом!Может быть, не такой чистый, но он должен делать то, для чего он используется!
Спасибо всем, кто нашел время, чтобы ответить!