Как говорит заголовок, в настоящее время я делаю небольшие хаки с указателями в C ++, но что-то не получается, вот что я получил:
uintptr_t texture_pointer = (int)((void*) &texture);
Где текстура это класс; похоже, это работает нормально, так как я получаю значение указателя, и я заверил, что я получаю то же значение в другую мою функцию, которая должна вернуть объект; это код, который не работает:
std::cout << "C++ BEFORE: " << texture_pointer << std::endl;
Texture texture = *(Texture*)((void*) texture_pointer);
std::cout << "C++ AFTER: " << (uintptr_t)((void*) &texture) << std::endl;
Вывод, который я исключал; было то, что одно и то же число для обоих, однако я получаю два разных числа, поэтому я думаю, что должна быть ошибка, но я не могу ее найти.
Пример вывода:
C++ BEFORE: 2685236
C++ AFTER: 2684960