首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于同一块内存的两次释放。该如何处理

2012-02-19 
关于同一块内存的两次释放。都说对同一块内存的两次释放会造成内存错误,那么究竟会造成什么样的错误?谢谢。.

关于同一块内存的两次释放。
都说对同一块内存的两次释放会造成内存错误,那么究竟会造成什么样的错误?谢谢。
....
p   =   malloc(n);
free(p);
free(p);
....

以上代码会造成内存错误吗?我在redhat9上没发现什么啊。盼解答!

[解决办法]
你这次没看到错误并不说就没有错误。不要被暂时的假象迷惑,如果在大的项目中有类似的代码,问题可就大了可能出现逻辑正确,但结果错误的情况
[解决办法]
我的程序段如下
#include <stdio.h>
#include <malloc.h>

int main()
{
int *p = (int *)malloc(1024);
free(p);
free(p);
return 0;
}

编译和连接时都没出现问题
但运行时便出了问题了

记得《C++ Primer》 上面好像讲述过这原因

热点排行