您的位置:首页 > 编程语言 > C语言/C++

C语言如何中避免野指针

2014-10-29 21:59 267 查看
C语言如何中避免野指针:

1.初始化的是定义指针变量的时候,指针变量赋值成null

2释放的时候,判断是不是null

3 释放完毕以后再赋值成null

看下面程序:

#include<stdio.h>
#include<stdlib.h>
int  main()
{
//1.初始化的是定义指针变量的时候,指针变量赋值成null
char *p = NULL;
p=(char *)malloc(100);
printf("p 开始指向空间地址%d \n",p);
//2释放的时候,判断是不是null
if(p != NULL)
{
free(p);
//3 释放完毕以后再赋值成null
printf("p 释放后指向空间地址%d \n",p);
p = NULL;
printf("p == NULL 指向空间地址%d \n",p);
}
system("pause");
return ret;
}
其内存分配图:



程序运行结果:



首先要理解char *p 其是一个变量,需要4个字节空间,指针指向谁就是把谁的地址赋值给这个指针变量,其在释放空间的时候只是释放指针变量的值作为首地址的一段空间,其并不影响指针变量的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: