Re[2]: Как правильно получить по адресу
От: indee  
Дата: 10.12.20 12:37
Оценка: :)))
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, indee, Вы писали:


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


N>Платформа какая?

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

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


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


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


N>А так уже сказали — указатель на объект базового класса решает >=90% подобных проблем.


64-битная винда.
Адрес хранится в БД, поэтому указатель на объект базового класса использовать не могу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.