Re: [問題] delete與堆積損毀
因為之前有問一些關於delete的問題
但還是有個盲點
想藉此問下
http://codepad.org/EWq537FI
我知道我存取超過配置範圍
1. 為啥只有在delete 時間點才會觸發程式"壞掉"...?
- 之前問問題有被糾正過觀念 OS是紀錄配置的起始位址跟長度
那我現在多存取的部分 照字面上OS是不曉得的阿?
他怎知道我多存取了? 至於壞掉的原因是什麼?
2. 上面用"壞掉" 是因為我不曉得這種是甚麼型態的東西
我__try __except都抓不到他... 用release build跑也直接當掉..
從VC的dialog又不知道該怎麼error handling
還是這種就是死當沒有他法?
VC這dialog還有一些奇怪選項可以勾...
都不知道在幹嘛= =
謝謝
※ 引述《la8day (la8day)》之銘言:
: 開發平台(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: 118.163.58.205
推
12/27 15:58, , 1F
12/27 15:58, 1F
→
12/27 15:59, , 2F
12/27 15:59, 2F
→
12/27 16:00, , 3F
12/27 16:00, 3F
→
12/27 16:01, , 4F
12/27 16:01, 4F
→
12/27 16:02, , 5F
12/27 16:02, 5F
→
12/27 16:02, , 6F
12/27 16:02, 6F
→
12/27 16:05, , 7F
12/27 16:05, 7F
→
12/27 16:05, , 8F
12/27 16:05, 8F
→
12/27 16:11, , 9F
12/27 16:11, 9F
→
12/27 16:12, , 10F
12/27 16:12, 10F
→
12/27 16:13, , 11F
12/27 16:13, 11F
→
12/27 16:14, , 12F
12/27 16:14, 12F
→
12/27 16:16, , 13F
12/27 16:16, 13F
→
12/27 16:16, , 14F
12/27 16:16, 14F
→
12/27 16:17, , 15F
12/27 16:17, 15F
→
12/27 16:22, , 16F
12/27 16:22, 16F
→
12/27 16:22, , 17F
12/27 16:22, 17F
→
12/27 16:23, , 18F
12/27 16:23, 18F
→
12/27 17:07, , 19F
12/27 17:07, 19F
→
12/27 17:07, , 20F
12/27 17:07, 20F
→
12/27 17:11, , 21F
12/27 17:11, 21F
→
12/27 17:11, , 22F
12/27 17:11, 22F
→
12/27 17:11, , 23F
12/27 17:11, 23F
→
12/27 17:12, , 24F
12/27 17:12, 24F
→
12/27 17:13, , 25F
12/27 17:13, 25F
推
12/27 17:52, , 26F
12/27 17:52, 26F
→
12/27 17:53, , 27F
12/27 17:53, 27F
→
12/27 17:54, , 28F
12/27 17:54, 28F
→
12/27 17:56, , 29F
12/27 17:56, 29F
→
12/27 18:36, , 30F
12/27 18:36, 30F
→
12/27 18:38, , 31F
12/27 18:38, 31F
推
12/27 18:43, , 32F
12/27 18:43, 32F
推
12/27 18:47, , 33F
12/27 18:47, 33F
→
12/27 18:53, , 34F
12/27 18:53, 34F
→
12/27 18:54, , 35F
12/27 18:54, 35F
→
12/27 18:56, , 36F
12/27 18:56, 36F
→
12/27 19:04, , 37F
12/27 19:04, 37F
→
12/27 19:05, , 38F
12/27 19:05, 38F
→
12/27 19:06, , 39F
12/27 19:06, 39F
→
12/27 19:08, , 40F
12/27 19:08, 40F
→
12/27 19:11, , 41F
12/27 19:11, 41F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章