我知道了,一般new与delete成对使用,我改写了一下就可以了: int *p=new int; delete p; p=NULL; cout<<p<<<endl; 输出为00000000 我想知道为什么,这么写就报错了: int a=10; int *p=&a; delete p; p=NULL; cout<<p<<endl; new与delete应该成对出现的原因是什么?难道是不可以随便释放一个指针指向的内存?如果是这样的话,什么样的只能可以用delete来释放其指向的内存空间呢?
去掉[ ],同样会报错,既然p=NULL,为什么输出p会报错呢?不应该输出全0么?
而后者是释放指针所在的内存
int a; a = 0;
65,187
社区成员
250,526
社区内容
加载中
试试用AI创作助手写篇文章吧