内存释放错误
2016-05-22 17:25
204 查看
今天遇到了两次内存释放错误,不一样的情形导致的,但出现的错误提示是一样的。如图:
第一次的内存错误代码是这样的
内存释放错误因为内存空间分配时出错了,应该是:
因为分配的结构类型出错,释放内存空间是计算机不知道这个类型,故出错。
第二次内存释放错误:
开始我是用的:
我以为malloc的局限性导致的,换了new和delete仍然是这个错误,后来发现原来是我在对a的操作越界了,出现了a[10],造成内存释放错误。
第一次的内存错误代码是这样的
struct StackNode{ int element; StackNode* next; }; StackNode* s = (StackNode*)malloc(sizeof(StackNode*)); free(s);
内存释放错误因为内存空间分配时出错了,应该是:
StackNode* s = (StackNode*)malloc(sizeof(struct StackNode));
因为分配的结构类型出错,释放内存空间是计算机不知道这个类型,故出错。
第二次内存释放错误:
typedef int elm_type; elm_type*a = new elm_type[10]; delete []a;
开始我是用的:
elm_type *a = (elm_type*)malloc(sizeof(elm_type) * 10); free(a);
我以为malloc的局限性导致的,换了new和delete仍然是这个错误,后来发现原来是我在对a的操作越界了,出现了a[10],造成内存释放错误。
相关文章推荐
- IE7降低内存和降低CPU的几个技巧
- 如何高效的使用内存
- DOS下内存的配置
- XP/win2003下发现1G的内存比512M还慢的解决方法
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- SQL语句实现查询SQL Server内存使用状况
- C语言内存对齐实例详解
- 深入学习C语言中memset()函数的用法
- c语言中malloc、realloc与calloc 的区别以及联系
- C++中new与delete、malloc与free应用分析
- 全局变量与局部变量在内存中的区别详细解析
- VB读取线程、句柄及写入内存的API代码实例
- php运行提示:Fatal error Allowed memory size内存不足的解决方法
- IE浏览器IFrame对象内存不释放问题解决方法
- C#之CLR内存深入分析
- JavaScript 变量、作用域及内存
- JavaScript避免内存泄露及内存管理技巧
- C语言中的malloc使用详解
- J2ME编程中的几个重要概念介绍