您的位置:首页 > 其它

野指针的处理

2016-03-09 09:48 288 查看
野指针处理的三个要点:

定义指针时,把指针变量赋值为NULL

释放内存时,先判断指针变量是否为NULL

释放完毕后,把指针变量重新赋值为NULL

#include <stdio.h>
#include <stdlib.h>

void free_mem(char *p)
{
if (p != NULL){
free(p);
p = NULL;       // 这里的p只是形参,把NULL赋给形参并不影响实参
// 所以当函数执行完后,实参pa的值并不为NULL
}
}

int main(void)
{
char *pa = NULL;

pa = (char *)malloc(100);

free_mem(pa);

return 0;
}


如果最后在main函数里面调用两次free_mem,程序就会报错,因为此时pa不为NULL,执行free(pa)会释放掉一块已经释放了的内存
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  野指针