在C++中,指针被delete后而不赋值为NULL,那该指针是什么样的状态,它有指向的内存空间吗?

2024-11-28 17:53:42
推荐回答(2个)
回答(1):

那个指针的值是不变的,也就是还指向你申请来的那块空间
但是。
即然delete了,那块空间就不再规你的程序所有了,所以虽然你的那个指针还指向那块内存空间
但你并不具有对那块空间的使用权,访问权。
所以当你在delete后如果试图使用的话,程序就会崩溃
所以最好赋上NULL,防止你写程序时不小心引用导致错误

回答(2):

指针只是保存所指对象的地址,没有任何状态信息。delete之后,本身指针的内容是不会改变的,只不过它里面保存的地址所对应的内存在系统里标记为未使用的罢了。那段内存随时可能分配给其它进程或者进程内的其它变量。你应该避免使用delete后的内存,这是你的事。为了容易标识,所以才赋值为NULL。