[問題] delete與堆積損毀
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2008
問題(Question):
用new配置一個array後,然後delete。但VC此時跳出來說已觸發中斷點,堆積損毀等等
爬文+google之後發現也有人有類似情況,但初學不久,檢查code老半天還是看不出來
哪裡有問題....
我把code簡化了,原本的I/O、功能應該不太重要
問題應該就是出在那個*setPoly
如果把delete [] setPoly那邊註解掉,或是把那個for迴圈的內容也砍了就不會有問題
不過我想這code已經這麼短了....debug很久還是不得其解囧
程式碼(Code):(請善用置底文網頁, 記得排版)
void readIO(int argc, char *argv[])
{
int *setPoly=0;
int i;
int j=5;
Icount = 8;
Ocount = 4;
Pcount = 5;
NUM_PRT = 17;
setPoly = new int (1000);
cout<<"Pcount ="<<Pcount<<endl;
for(i=0;i<Pcount;i++)
{
*(setPoly+i) = j;
cout<<"setPoly->"<<*(setPoly+i)<<endl;
}
delete [] setPoly;
}
補充說明(Supplement):
原本int *setPoly我是設成全域變數,而且是在main去釋放他
但後來改成區域變數且在同個function釋放也是同樣問題,我想應該無關?
明顯是*setPoly在作怪,不釋放記憶體就可以正常執行。但到了其他function可能會
繼續造成危害。
這code和問題好像都沒啥程度> <,不過已經困擾頗久,還請各位高手來解惑~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.182.224.51
→
12/27 04:14, , 1F
12/27 04:14, 1F
→
12/27 04:45, , 2F
12/27 04:45, 2F
→
12/27 04:49, , 3F
12/27 04:49, 3F
→
12/27 04:58, , 4F
12/27 04:58, 4F
→
12/27 04:58, , 5F
12/27 04:58, 5F
→
12/27 08:19, , 6F
12/27 08:19, 6F
→
12/27 08:19, , 7F
12/27 08:19, 7F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章