C++编程中的一个小疑问

C++语言 码拜 8年前 (2017-04-29) 1143次浏览
本人发现在很多代码中都喜欢这么写:
if(n != NULL)
{
delete n;
n == NULL;   //记住释放完内存将指针赋为NULL
}
n = new int[10];
为什么不直接在n指向的内存中操作呢?
非得先判断不为空则销毁再分配。
这么做有什么好处?
解决方案

5

1)首先”n == NULL;   //记住释放完内存将指针赋为NULL”这一句是错误的,应该为n =NULL
2) 拿来一个不是本人定义的指针,很有可能是野指针,也就是内存位置不定,不能直接使用,最好使用本人重新分配的

10

大括号中的 == 应该改为 =
将释放后的指针置为NULL,是为了防止释放后无意中再使用到该指针

10

至于if 中判断能否为空到是可以不要,delete在释放时也会先判断是指针能否为空,假如为空不采取任何操作

10

你直接拿来用怎么行,你都不知道它的大小

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++编程中的一个小疑问
喜欢 (0)
[1034331897@qq.com]
分享 (0)