野指针产生的原因
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//野指针产生的原因
//指针变量和它所指向的内存空间变量是两个不同的概念
//释放了指针所指的内存空间 但是指针变量本身没有重置成null
//造成释放的时候 通过if(p1 != NULL)
//避免方法:1)定义指针的时候 初始化成null 2)释放指针所指向的内存空间后,把指针重置成null
int main(void)
{
char *p1 = NULL;
p1 = (char *)malloc(100);
if(p1 == NULL)
{
return ;
}
strcpy(p1, "11112222");
printf("p1:%s \n", p1);
if(p1 != NULL)
{
free(p1);
p1 = NULL; //释放了指针所指的内存空间 但是指针变量本身没有重置成null
}
if(p1 != NULL)
{
free(p1);
}
return 0;
}
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并,获取更多隐藏干货,QQ交流群:859800032 微信公众号:Crystal软件学堂
作者:Liu_Jing bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |