указатель может иметь значение ??
так в каком случае это используется
int num=100;
int* iptr=NULL;
iptr=reinterpret_cast<int*>(num);
printf("%d \n",num);
printf("%d \n",num);
результат
100
100
reinterpret_cast
не будет безопасно полученным значением указателя, кроме как при определенных условиях. Эти условия не выполняются в вашем примере.Цитата из проекта CPP (N4713):
8.5.1.10 Переосмыслить приведение
…
6. Значение целочисленного типа или типа перечисления может быть явно преобразовано в указатель. Указатель, преобразованный в целое число достаточного размера (если таковое существует в реализации) и обратно в тот же тип указателя, будет иметь свое первоначальное значение; отображения между указателями и целыми числами в противном случае определяются реализацией. [ Заметка:
За исключением случаев, описанных в 6.6.4.4.3, результат такого преобразования не будет безопасно выведенным значением указателя.
—Конечная записка]
Условия для Безопасно полученных указателей.
6.6.4.4.3 Безопасно полученные указатели
…
2 Значение указателя является надежно полученным указателем на динамический объект, только если он имеет тип указателя объекта и является одним из следующих:
(2.1) — значение, возвращаемое вызовом реализации стандартной библиотеки C ++ :: operator new (std :: size_t) или :: operator new (std :: size_t, std :: align_val_t);
(2.2) — результат взятия адреса объекта (или одного из его подобъектов), обозначенного lvalue, в результате косвенного обращения через безопасно полученное значение указателя;
(2.3) — результат хорошо определенной арифметики указателя с использованием безопасно полученного значения указателя;
(2.4) — результат четко определенного преобразования указателя в безопасно полученное значение указателя;
(2.5) — результат reinterpret_cast из безопасно полученного значения указателя;
(2.6) — результат reinterpret_cast целочисленного представления значения указателя, полученного безопасно;
(2.7) — значение объекта, значение которого было скопировано из прослеживаемого объекта указателя, где во время копирования исходный объект содержал копию безопасно полученного значения указателя.
Других решений пока нет …