删除对象的C++指针

1 c++ memory pointers memory-management

我认为删除命令会释放我分配的内存.有人可以解释为什么看起来我仍然有删除后使用的内存?

class Test
{
public:
    int time;
};

int main()
{
    Test *e;

    e = new Test;

    e->time = 1;
    cout << e->time << endl;

    delete e;

    e->time = 2;
    cout << e->time << endl;

    return(0);
}
Run Code Online (Sandbox Code Playgroud)

我预计在e-> time = 2之后出现seg-fault;

谢谢!

Ed *_* S. 9

我预计在e-> time = 2之后出现seg-fault;

你不应该"期待"任何事情发生; 您正在调用未定义的行为,根据定义,未定义.这意味着您无法再对程序的状态做出任何合理的期望.

  • +1:但是,你*应该*期望未定义的行为,最终,无论你期望什么都是错的.;-) (2认同)