Код: Выделить всё
int x = 1;
int* px = &x; // px is an int* pointer with value "pointer to x"
void* pr = reinterpret_cast(&x); // p is a void* pointer with value "pointer to x"
// Convert pr pointer to an integral value and print it on the console/screen
std::cout
Я полагаю, что приведенный выше подход все еще приводит к неопределенному поведению, но почему это так? Насколько я вижу:
1. reveterpret_cast Код: Выделить всё
pointer -> uintptr_t -> pointer< /code>).
2. Там нет какого -либо странного типа наказания, и все указатели указывают на действительные адреса, где соответствующие напечатанные объекты на самом деле существуют
3. Аргументы, передаваемые STD :: raunder Я знаю, что мне, вероятно, не хватает какой -то важной концепции, но что именно это? Это как -то связано с тем, как указатели смоделированы по отношению к стандартной спецификации, которая делает все точки выше спорта? Или это что-то еще, сложно написано в стандарте, о котором я не знаю?
Подробнее здесь: https://stackoverflow.com/questions/797 ... d-pointers
Мобильная версия