[問題] 結構的記憶體動態配置

看板C_and_CPP (C/C++)作者 (罷)時間13年前 (2012/09/15 10:14), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 使用三維陣列動態配置出問題 餵入的資料(Input): 預期的正確結果(Expected Output): 正常的跑 錯誤結果(Wrong Output): 跑到delete時當掉 程式碼(Code):(請善用置底文網頁, 記得排版) struct IV { int index; double value; }; IV ***llrq = new IV**[M];//create llrq for (int i=0; i<M; i++) { llrq[i] = new IV*[n_col]; for (int j=0; j<n_col; j++) llrq[i][j] = new IV[nm]; } IV ***llrr = new IV**[M];//create llrr for (int i=0; i<M; i++) { llrr[i] = new IV*[n_col]; for (int j=0; j<n_col; j++) llrr[i][j] = new IV[nm]; } for(i=0;i<M;i++) //delete llrr { for(j=0;j<n_col;j++) { delete [] llrr[i][j];} delete [] llrr[i]; } delete [] llrr; for(i=0;i<M;i++) //delete llrr { for(j=0;j<n_col;j++) { delete [] llrq[i][j];} delete [] llrq[i]; } delete [] llrq; 補充說明(Supplement): M n_col 都是const int -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.152.216

09/15 15:53, , 1F
delete llrr[i][j] ?
09/15 15:53, 1F

09/16 10:55, , 2F
樓上意思是把delete [] llrr[i][j];改成你那樣?
09/16 10:55, 2F

09/17 09:40, , 3F
每一維都是new array, 原po原本的寫法應該才是對的....
09/17 09:40, 3F

09/17 09:41, , 4F
你的M, n_col, nm各是多大? 要不要檢查一下new是否真的
09/17 09:41, 4F

09/17 09:41, , 5F
都有成功要到?
09/17 09:41, 5F

09/17 10:46, , 6F
M=56 n_col=112 nm=32
09/17 10:46, 6F
文章代碼(AID): #1GK-HpXI (C_and_CPP)
文章代碼(AID): #1GK-HpXI (C_and_CPP)