野指针原因及解决方法

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//野指针产生的原因

//指针变量和它所指的内存空间变量是两个不同的概念

//释放了指针所指的内存空间,但是指针本身没有重置成null

//造成释放的时候 通过if(p1!=NULL)

//避免方法:1)定义指针的时候,初始化成NULL。2)释放指针所指向的内存空间后,把指针重置成NULL。

int main()
{
char *p1 = NULL;
p1 = (char*)malloc(100);
if (p1 == NULL)
{
return;
}

strcpy(p1, "12121212");
printf("p:%s\n", p1);
if (p1 != NULL)
{
free(p1);
p1 = NULL;
}

if (p1 != NULL)
{
free(p1);
}

system("pause");
return 0;
}

时间: 2024-10-15 11:50:02

野指针原因及解决方法的相关文章

coreseek常见错误原因及解决方法

coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索.论坛/站内搜索.数据库搜索.文档/文献检索.信息检索.数据挖掘等应用场景,用户可以免费下载使用 本文为大家整理了coreseek/sphinx中文检索引擎的常见问题和解决方法,感兴趣的同学参考下. Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协

解析Win8小键盘灯不亮的原因及解决方法 &nbsp; &nbsp; &nbsp;

相信不少用户安装win8.1系统后发现,每次电脑开机小键盘灯都不亮,导致无法使用小键盘,需要手动按Num lock键才能打开数字小键盘输入.虽然,问题不大,但每次都要重复这样的动作感觉很烦.有没有办法解决这个问题呢?其实,只需要修改注册表就能搞定. 按"win+R"快捷键打开运行对话框,输入"regedit"命令,打开注册表编辑器,依次找到"HKEY_USERS→.DEFAULT→Control Panel→Keyboard",将其右边的&quo

Hyper-V虚拟机启动时报&ldquo;账户没有足够的权限打开VHD文件&rdquo;原因及解决方法

前段时间,准备做一套Exchange Server 2010仿真环境,用于后期企业内各项变更及平台上线时测试工作,由于需要准备的服务器较多,一台一台装虚机,感谢非常费时间,所以想到,做一个模版来快速完成虚拟机部署工作,大概的过程我想大家也有做过,就是装一台Hyper-V虚机,然后把VHD硬盘文件拷贝出来,分别替换所有建好没有系统的虚拟机硬盘,看似简单,但是在实际操作时发现,模版硬盘没有被识别?各种报错,如下图所示: 当看到上图所示这些报错时,很不理解,已经将这台机器的VHD文件指向了新拷入的模版

关于MySQL错误 2005 - Unknown MySQL server host &#39;localhost&#39; (0) 原因及解决方法

今天在外面开navicat for mysql的时候,怎么也连不上自己本机上的数据库,一直显示2005 - Unknown MySQL server host 'localhost' (0): 错误代码的意思即无法连接上主机localhost.可能是由于没有联网造成的:于是将连接属性里的 '主机名或IP地址' 改成127.0.0.1即回送地址后,就可以连接上了.上百度搜了下,navicat里的一些功能应该是要联网的,而localhost是需要DNS解析后才会是127.0.0.1的,所以才会导致这

使用 ADOX 将 Table 添加到 Catalog 时报“类型无效”的原因和解决方法

http://blog.csdn.net/kfhzy/article/details/6020283 http://blog.csdn.net/kfhzy/article/details/6020545 李维的代码,原来链接的是MS SQL,改成ACCESS后,报 类型无效 错误 原因 除了 adDBTimeStamp 这样的 明显不支持的数据类型外,一般的,也有区别,adVarChar 在ACCESS里是adVarWChar procedure TfrmCreateTable.btnCreat

预防野指针的几种方法

野指针,又称迷途指针,即指向"垃圾"内存的指针.此时指针指向的内存已被操作系统回收,程序已无法再访问. 野指针,不是NULL指针,而是看上去指向合法内存,却在实际上该内存已经释放. 下面是,预防野指针的几种方法. 1)声明指针时,记得初始化,例如: char* p=NULL; 2)当指针没有使用价值时,记得释放,释放成功后记得为该指针赋值NULL.例如: if(NULL != P) { delete p; p = NULL; } 3)如果指针作为函数的输入参数时,在引用参数前首先对指针

php教程之php空白页的原因及解决方法

php中出现空白页的原因及解决方法汇总. 很多程序员在进行php开发的时候都遇到过出现空白页的请,综合分析来说,在php编程中出现空白页面可能是由以下几个原因造成的: 1.逻辑错误逻辑错误是最难排除的,从表面上看,也许代码是合法的,是正规的,可运行起来却不是预料之中的.很多php教程中均有提及这方面的内容.为什么呢?也许是编写者想得不够全面,毕竟人是人,计算机是计算机,计算机不可能完全按照人的思路去运行脚本.一个比较好的调试方法,就是使用注释符“/* */”,注释掉一些代码,观察运行情况,以此来

Java并发编程:Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常.下面我们就来讨论以下这个异常出现的原因以及解决办法. 以下是本文目录大纲: 一.ConcurrentModificationException异常出现的原因 二.在单线程环境下的解决办法 三.在多线程环境下的解决方法 若有不

Nginx 502 Bad Gateway 错误的原因及解决方法

http://my.oschina.net/zhouyuan/blog/118708 刚才在调试程序的时候,居然服务器502错误,昨天晚上也发生了,好像我没有做非常规的操作. 然后网上寻找了下答案, 把一些原因及解决方法汇总一下,以防生产环境下的502  会有好多种情况出现502错误,下面我们分情况来说一下. 一.fastcgi缓冲区设置过小 出现错误,首先要查找nginx的日志文件,目录为/var/log/nginx,在日志中发现了如下错误. 2013/01/17 13:33:47 [erro