Re: Как правильно получить по адресу
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.12.20 12:32
Оценка: +2
Здравствуйте, indee, Вы писали:

I>Нужно получит экземпляра объекта по его адресу:


Платформа какая?
Если 64-битная винда, то указатель — 64 бита, а long — 32 (не спрашивай почему они такие извращенцы, когда даже в дотнете long — 64).
Тебе нужен uintptr_t, а не long.

Но в общем случае такие пляски нужны только в особых случаях, типа передачи через WinAPI. А зачем в обычном коде приводить указатель к целому?

I>Правильно ли это, как это можно улучшить/обезопасить и правильно обвернуть MyObj* pObj = (MyObj*)p в try-catch?


Тут оборачивать не надо, если исходное значение было правильным указателем. А вот если нет причины ему доверять — то нельзя доверять и указателю без проверки.

А так уже сказали — указатель на объект базового класса решает >=90% подобных проблем.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.