以下是我遇到的一个简单示例: 我创建一个整数(值为5)的指针,我打印它指向的内存大小写的指针(因此地址),以及它的内容(5)。
然后我删除了那个指针,它应该删除内存中具有指针地址的内容。 但是当我打印 a 及其内容时,正如预期的那样,地址仍然存在。然而,内容保持不变(5),好像 a 没有被删除... 你能解释一下吗? : - )
#include <iostream>
int main()
{
int * a = new int(5);
std::cout<< a << std::endl;
std::cout<< "--------" << std::endl;
delete a;
std::cout<< a << std::endl;
std::cout<< *a << std::endl;
// end of my main
return 0;
}
结果:
0x7fff28403a90
--------
0x7fff28403a90
5
答案 0 :(得分:0)
删除操作后可能会也可能不会打印相同的值。所以你所观察到的只是一种未定义的行为。