[問題] delete[] 問題,懷疑記憶體沒放乾淨
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2008
問題(Question):
如程式碼,懷疑所創的動態記憶體是否沒有釋放乾淨
程式碼(Code):(請善用置底文網頁, 記得排版)
若有一個程式如下:
int i,j;
int ***KP = new int**[x];
for(i=0;i<x;i++)
{
KP[i] = new int*[y];
KP[i][0] = new int[y*z];
for(j=0;j<y;j++)
KP[i][j] = KP[i][0] + j*z;
}
//中間略
for(i=0;i<x;i++)
{
delete[] KP[i][0];
delete[] KP[i];
}
delete[] KP;
補充說明(Supplement):
程式執行的結果有時候會對,有時候會錯(這個專案是用於影像處理的定位)
y和z在這裡是代表影像的高和寬,因為影像滿大的所以我一開始考慮在最後一個維度
一次new出所需要的記憶體空間(x代表第幾張圖)
而不是採用
KP[j][i] = new int[z]; //剛剛發現這邊打錯了應該是KP[i][j] = ...
這種做法...
但也因為不識很熟悉,所以delete這邊不是很有把握
想請問各位大大,這種寫法是否有問題
這邊懷疑了很久了,希望有在這邊得到一些指點 謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 222.251.16.213
推
09/17 15:47, , 1F
09/17 15:47, 1F
→
09/17 15:48, , 2F
09/17 15:48, 2F
推
09/17 19:28, , 3F
09/17 19:28, 3F
→
09/17 19:28, , 4F
09/17 19:28, 4F
推
09/17 19:55, , 5F
09/17 19:55, 5F
→
09/18 00:19, , 6F
09/18 00:19, 6F
→
09/18 00:20, , 7F
09/18 00:20, 7F
→
09/18 00:22, , 8F
09/18 00:22, 8F
※ 編輯: coolE 來自: 222.251.16.213 (09/18 00:33)
→
09/18 00:34, , 9F
09/18 00:34, 9F
※ 編輯: coolE 來自: 222.251.16.213 (09/18 00:36)
→
09/18 17:33, , 10F
09/18 17:33, 10F
→
09/18 17:56, , 11F
09/18 17:56, 11F
→
09/18 17:59, , 12F
09/18 17:59, 12F
推
09/18 18:19, , 13F
09/18 18:19, 13F
→
09/18 18:19, , 14F
09/18 18:19, 14F
→
09/18 18:21, , 15F
09/18 18:21, 15F
→
09/18 18:21, , 16F
09/18 18:21, 16F
→
09/18 18:22, , 17F
09/18 18:22, 17F
→
09/18 18:23, , 18F
09/18 18:23, 18F
→
09/18 20:55, , 19F
09/18 20:55, 19F
→
09/19 16:11, , 20F
09/19 16:11, 20F
→
09/19 16:11, , 21F
09/19 16:11, 21F
→
09/19 16:13, , 22F
09/19 16:13, 22F
→
09/19 16:13, , 23F
09/19 16:13, 23F
→
09/19 16:14, , 24F
09/19 16:14, 24F
→
09/19 16:15, , 25F
09/19 16:15, 25F
→
09/19 16:16, , 26F
09/19 16:16, 26F
→
09/19 18:15, , 27F
09/19 18:15, 27F
→
09/19 22:41, , 28F
09/19 22:41, 28F
→
09/19 23:33, , 29F
09/19 23:33, 29F
→
09/20 01:36, , 30F
09/20 01:36, 30F