I*******e 发帖数: 1879 | 1 ☆─────────────────────────────────────☆
Ramboiory (暗黑八神庵) 于 h 提到:
一个函数里
void func()
{
int* p = new int[3];
.....
delete []p;
}
动态申请分配内存,以及最后的回收都已经做到位了。中间步骤中没有用到delete。函
数就是一般的顺序执行的函数,没有递归。这个函数被多次调用,在大概几万次时出现
BUG,错误提示是“HEAP CORRUPTION DETECTED: before Normal block (#587379) at
0x009753E0; CRT detected that the application wrote to memory before
start of heap buffer”。
中止到断点调式,发现断点停在delete []p这一句。我猜想是不是前面的new没有分配
成功导致这个p实际值是NULL。但是,我用VC++平台的的Watch察看local变量,发现
p[0], p[1], p[2]的值都是 | t*********e 发帖数: 1136 | |
|