可能重复:
如何安全地删除多个指针
如下代码:
#include <iostream>
using namespace std;
int main(int argc, _TCHAR* argv[])
{
int *p, *q;
q = new int;
p = q;
delete q;
q = NULL;
cout << p << " " <<q << endl;
return 0;
}
p
指向q
. 当我删除q
和q
=NULL
时,p
仍然指向旧地址。有没有人有任何方法可以自动p
指出q
NULL
?因为如果在一个程序中有很多指针指向同一个地址,我们不能让它们指向NULL
它会带来问题。