删除我的指针后内存内容没有被删除(在一个简单的例子中)

memory content not erased after deleting my pointer (on a simple example)

这是我遇到的一个问题的简单示例: 我创建了一个整数指针(值 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

删除操作后可能会或可能不会打印相同的值。因此,您所观察到的只是一种未定义的行为。