本人发现在很多代码中都喜欢这么写:
if(n != NULL)
{
delete n;
n == NULL; //记住释放完内存将指针赋为NULL
}
n = new int[10];
为什么不直接在n指向的内存中操作呢?
非得先判断不为空则销毁再分配。
这么做有什么好处?
if(n != NULL)
{
delete n;
n == NULL; //记住释放完内存将指针赋为NULL
}
n = new int[10];
为什么不直接在n指向的内存中操作呢?
非得先判断不为空则销毁再分配。
这么做有什么好处?
解决方案
5
1)首先”n == NULL; //记住释放完内存将指针赋为NULL”这一句是错误的,应该为n =NULL
2) 拿来一个不是本人定义的指针,很有可能是野指针,也就是内存位置不定,不能直接使用,最好使用本人重新分配的
2) 拿来一个不是本人定义的指针,很有可能是野指针,也就是内存位置不定,不能直接使用,最好使用本人重新分配的
10
大括号中的 == 应该改为 =
将释放后的指针置为NULL,是为了防止释放后无意中再使用到该指针
将释放后的指针置为NULL,是为了防止释放后无意中再使用到该指针
10
至于if 中判断能否为空到是可以不要,delete在释放时也会先判断是指针能否为空,假如为空不采取任何操作
10
你直接拿来用怎么行,你都不知道它的大小