[問題] 雙重指標與動態宣告二維陣列的問題

看板C_and_CPP (C/C++)作者 (小椪柑)時間15年前 (2010/07/26 15:33), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
請問一下大家 這是子由學習網站來的例題 詢問下列程式是否正確 int main(int argc, char *argv[]) { int M=3; int N=2; int **p=new int*[M]; for(int i=0;i<M;++i) { p[i] = new int[N]; } int **q=p; for(int i=0;i<M;++i) { delete q[i]; } delete []q; system("PAUSE"); return EXIT_SUCCESS; } 我把這串碼key到dev c++中,不會有錯誤 但是當我把每個陣列單元塞值 在delete q[i]之後輸出,又可以把值輸出 這是怎麼回事?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.206.253 ※ 編輯: scorange 來自: 163.29.206.253 (07/26 15:35)

07/26 15:39, , 1F
運氣好 XD
07/26 15:39, 1F

07/26 15:41, , 2F
指標用完後請指回NULL
07/26 15:41, 2F

07/26 16:08, , 3F
delete q[i] 改成 delete [] q[i] 才對
07/26 16:08, 3F

07/26 16:09, , 4F
delete 只會把記憶體位址「標記」為未使用
07/26 16:09, 4F

07/26 16:10, , 5F
不一定會把內容清除
07/26 16:10, 5F
文章代碼(AID): #1CJJfTO1 (C_and_CPP)
文章代碼(AID): #1CJJfTO1 (C_and_CPP)