C++中new和delete的使用
main()
{
char *p==new char[2];
delete []p;
p=NULL;
}
这个地方的p=NULL完全多余吧,要是这样做的话会不会有什么漏洞?还有,delete是将p指向的内存空间释放了,变量p并没有也跟着消失吧?
[解决办法]
p被释放之后,如果继续使用,后果不堪设想。p = NULL可以避免此类野指针错误。访问NULL指针最多不过crash。
[解决办法]
char *p==new char[2]; 这里是一个 = 而不是两个.
delete后 让其=NULL多不多余,是要看具体情况,但你都加NULL是个好习惯,
[解决办法]
一点也不多余的 虽然释放了它 但是这个指针还是存在的 虽知道它现在指向的什么进程 你要是再以调用 嗯哼 但是p=NULL 就不会了 因为这样它就不指向任何对象了
[解决办法]
delete后赋为NULL是很好的习惯
[解决办法]
最好每次delete之后,都将p=null,这样可以避免p成为野指针。另外,在删除之前,也可以判断p是否等于null