作者hakkacandy (...)
看板Programming
标题[问题] 请问各位HEAP CORRUPTION DETECTED的问题
时间Thu Jul 5 13:58:13 2012
小弟写一个类别
有一个成员是指标
class A
{
A();
~A();
int* array;
};
在建构子中 给这个指标分配空间
A::A()
{
array = new int [size];
}
在解构子中删除这个记忆体
A::~A()
{
if(array)
{
delete array;
array = 0;
}
}
这样子写之後,会遇到两个问题,
1.debug版程式在结束时delete array出现
HEAP CORRUPTION DETECTED:
CRT detected that the application wrote to memory after the end of heap buffer
2.release版本结束时不会跳出error但执行时有时会当机(视size而定),
但是在侦错模式下执行又没有问题
後来我上网查一下之後
改成array = new int [size+1]
以上两个问题神奇的都解决了,但是不知道背後的道理总是怕怕的
所以想请教各位这个问题出现的缘由?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.71.113
1F:推 purpose:heap 会贪污,就是程式有 bug 124.8.133.82 07/05 14:12
3F:→ saxontai:delete [] array; 210.80.75.2 07/05 21:37