C语言如何中避免野指针
2014-10-29 21:59
267 查看
C语言如何中避免野指针:
1.初始化的是定义指针变量的时候,指针变量赋值成null
2释放的时候,判断是不是null
3 释放完毕以后再赋值成null
看下面程序:
程序运行结果:
首先要理解char *p 其是一个变量,需要4个字节空间,指针指向谁就是把谁的地址赋值给这个指针变量,其在释放空间的时候只是释放指针变量的值作为首地址的一段空间,其并不影响指针变量的值。
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个字节空间,指针指向谁就是把谁的地址赋值给这个指针变量,其在释放空间的时候只是释放指针变量的值作为首地址的一段空间,其并不影响指针变量的值。