关于同一块内存的两次释放。
都说对同一块内存的两次释放会造成内存错误,那么究竟会造成什么样的错误?谢谢。
....
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》 上面好像讲述过这原因