C语言如何中避免野指针

来源:互联网 发布:网络教育高中升本科 编辑:程序博客网 时间:2024/04/30 14:44

C语言如何中避免野指针:

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

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

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

看下面程序:

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


程序运行结果:

首先要理解char *p 其是一个变量,需要4个字节空间,指针指向谁就是把谁的地址赋值给这个指针变量,其在释放空间的时候只是释放指针变量的值作为首地址的一段空间,其并不影响指针变量的值。




0 0