Я создал некоторый указатель в коде, но результаты не те, которые я ожидал.
Вот простой код:
int main(int argc, char const* argv[])
{
int myInt = 23;
int* ptr = &myInt;
char* buffer = new char[8];
memset(buffer, 0, 8);
char** ptr2 = &buffer;
std::cout << "ptr address is " << ptr << std::endl;
std::cout << "buffer pointer is pointing to address " << buffer << std::endl;
std::cout << "ptr2 pointer is pointing to address " << ptr2 << std::endl;
std::cout << "Dereferencing ptr2 = " << *ptr2 << std::endl;
return 0;
}
А вот результаты выполнения кода:
адрес ptr равен 0x7ffde215a14c
указатель буфера указывает на адрес
указатель ptr2 указывает на адрес 0x7ffde215a150
Разыменование ptr2 =
Мне интересно, почему адрес указателя буфера не отображается и почему разыменование ptr2
также ничего не показывает, и все же указатель (ptr2
), указывающий на указатель буфера, показывает этот адрес. Ничто из этого не имеет никакого смысла для меня.