首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中new和delete的使用,该如何解决

2012-04-17 
C++中new和delete的使用main(){char *pnew char[2]delete []ppNULL}这个地方的pNULL完全多余吧,要

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

热点排行