Как я могу получить структуру из определенной области памяти? - PullRequest
1 голос
/ 05 марта 2012

У меня есть место в памяти структуры, хранящейся как целое число.Как я могу получить структуру, хранящуюся в этом месте, и сделать указатель на объект в этом месте?

Structure object;
int memLocation = &object;

Structure objectCopy = (objectAtLocation) memLocation;
Structure *objectPointer = (pointerToLocation) memLocation;

Ответы [ 4 ]

6 голосов
/ 05 марта 2012

Использование int s вместо указателей - очень плохая форма, возвращаясь даже к первому изданию K & R.Так что ты делаешь плохо.Но при условии, что у вас нет выбора ...

, если Object равно Structure, то &object равно Structure *.Таким образом, правильный un-cast - это в основном ваша линия 3:

Structure *objectPointer = (Structure *) memLocation;
2 голосов
/ 05 марта 2012
int memLocation = (int)&object;

Structure *objectPointer = (Structure *) memLocation;
Structure object;
memcpy( &object, (void*)memlocation, sizeof( Structure ) );
0 голосов
/ 05 марта 2012
Structure *objectPointer = (Structure *)memLocation;
Structure ObjectCopy = *objectPointer;
0 голосов
/ 05 марта 2012

Обычный актерский состав:

Structure *object = (Structure *)memLocation;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...