free 一个指针时【 retval = HeapFree(_crtheap, 0, pBlock);】报错的原因
报错的位置
void __cdecl _free_base (void * pBlock)
{ int retval = ; if (pBlock == NULL)
return; RTCCALLBACK(_RTC_Free_hook, (pBlock, )); retval = HeapFree(_crtheap, , pBlock);//最后一个箭头指到这儿,蛋疼!!!
if (retval == )
{
errno = _get_errno_from_oserr(GetLastError());
}
}
解决方案:
方案1
在运行结束后报错,基本都是内存释放的问题!
释放了一个指针,这个指针所指的内存,不是用malloc等内存管理函数分配的内存。
查看一下那个指针是啥东西。
是否已经施行过加减运算,或者干脆就是随便拿过来的一个数值,
或者一个不用释放的指针(指向局部变量的指针,指向全局变量的指针),
甚至是野指针。
方案2
C,C++ 兼容的分配释放堆内存的函数:
malloc,realloc
free
凡是malloc 分配成功的内存,一定要用free释放,这个只要求,内存地址不变就行,分配的指针的值是多少,释放是就必须还是多少。
C++专用:
由于C++分配和释放内存的运算符new delete会分别调用构造函数,析构函数;
所以要求必须配对使用,并且 指针类型和指针的值,delete 的必须和 new的相同,不然就“有可能”不争取
分配单个对象用 new, delete
class A{....};
A *pa=new A;//这里使用的是new 运算符!!
...... //这些代码,不可以改动pa的值
delete pa; //使用的是delete 运算符!!改动后这个释放就错了!
分配对象数组用 new[],delete[];例如
class A{....};
A *pa=new A[];//这里使用的是new[]运算符!!
...... //这些代码,不可以改动pa的值
delete []pa; //使用的是delete[]运算符!!改动后这个释放就错了!
ew分配的用free释放 是错误的,同样,malloc 分配的用delete释放也是错误的!
这里指的是,这样做逻辑上是错误的;
非常可能会出错,并不是说一定会出错;
但是不养成配对使用的习惯,很容易出错!!!!
参考文章
free 一个指针时【 retval = HeapFree(_crtheap, 0, pBlock);】报错的原因的更多相关文章
- Couldn't load libPassword from loader:NDK开发中C文件编译成cpu对应的so类库时,找不到类库报错的原因之一
LogCat输出: 03-03 12:42:32.665: E/AndroidRuntime(32432): FATAL EXCEPTION: main03-03 12:42:32.665: E/An ...
- 01-路由跳转 安装less this.$router.replace(path) 解决vue/cli3.0语法报错问题
2==解决vue2.0里面控制台包的一些语法错误. https://www.jianshu.com/p/5e0a1541418b 在build==>webpack.base.conf.j下注释掉 ...
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification version
Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification ...
- wince6.0 编译报错:"error C2220: warning treated as error - no 'object' file generated"的解决办法
内容提要:wince6.0编译报错:"error C2220: warning treated as error - no 'object' file generated" 原因是 ...
- AndroidStudio3.0 注解报错Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor.
把Androidstudio2.2的项目放到3.0里面去了,然后开始报错了. 体验最新版AndroidStudio3.0 Canary 8的时候,发现之前项目的butter knife报错,用到注解的 ...
- centos 6.7 (UDEV,、etc/hosts)安装 RAC 11.2.0.4 报错处理
环境说明: db 11.2.0.4 os: centos 6.7 UDEV管理ASM 没有配置DNS服务器,采用/etc/hosts报错: 1. CVU(Cl ...
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">报错
https://blog.csdn.net/qq_36611526/article/details/79067159 今天遇到个问题 文件内引入某个资源 pom.xml头部http://maven.a ...
- maven项目解决pom.xml头部 http://maven.apache.org/xsd/maven-4.0.0.xsd报错的问题
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_36611526/article/d ...
随机推荐
- python 常见的错误类型 和 继承关系
BaseException +-- SystemExit #系统结束 +-- KeyboardInterrupt #键盘中断 ctrl+D +-- GeneratorExit #主动结束 +-- Ex ...
- docker搭建jira-7.11.1 + 破解
几行命令教你搭建一个jira最新版.所有步骤必不可少.破解补丁需要的请在下面留言. pull docker 镜像: jira:7.11.1(目前的最新版本) mysql:5.7 docker ...
- vue cli & npm err & shit cnpm
vue cli & npm err & shit cnpm npm err & shit cnpm https://github.com/vuejs/vue-cli/issue ...
- CentOS Linux上搭建PPPoE服务器及拨号设置
CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...
- [洛谷P3978][TJOI2015]概率论
题目大意:对于一棵随机生成的$n$个结点的有根二叉树,所有不同构的形态等概率出现(这里同构当且仅当两棵二叉树根相同,并且相同节点的左儿子和右儿子都相同),求叶子节点个数的期望是多少? 题解:令$f_n ...
- <转自原博客> NOIP2008 传纸条
小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们可以 ...
- JS设置、获取DOM自定义属性
jQuery方式 // 获取 $('#test').attr('mydata'); // 设置 $('#test').attr('mydata','data-content'); // 移除 $('# ...
- 【CF Round 439 C. The Intriguing Obsession】
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- NOIP2017赛前考试注意事项总结
考前: 考试前把读入优化和库以及对拍文件打好做好准备工作,另外注意放松心态,太紧张了肯定考不好··将自己的注意力集中起来 考场策略: 考试的基本策略是对每于道题先想个20分钟,如果想不出个靠谱的方 ...
- Educational Codeforces Round 2 B. Queries about less or equal elements
打开题目连接 题意:给2个数组(无序的)啊a,b,判断b数组中的每一个元素大于a数组中个数. ACcode: #include <iostream> #include <vector ...