[問題] 請問各位HEAP CORRUPTION DETECTED的問題

看板Programming作者 (...)時間13年前 (2012/07/05 13:58), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
小弟寫一個類別 有一個成員是指標 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

07/05 14:12, , 1F
heap 會貪污,就是程式有 bug
07/05 14:12, 1F

07/05 14:14, , 2F

07/05 21:37, , 3F
delete [] array;
07/05 21:37, 3F
文章代碼(AID): #1FzIpuiL (Programming)
文章代碼(AID): #1FzIpuiL (Programming)