如何釋放記憶體? |
尚未結案
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
ANIMATOR* m_pAnimator; ANIFRAME** m_pAniframe; CIMGFile*** m_pAnifrmImg; char* m_pAnifrmImgFile; if (m_ViewProperty.wWC_AnimatorQuantity>0) { m_pAnimator = new ANIMATOR[m_ViewProperty.wWC_AnimatorQuantity]; m_pAniframe = new ANIFRAME*[m_ViewProperty.wWC_AnimatorQuantity]; m_pAnifrmImg = new CIMGFile**[m_ViewProperty.wWC_AnimatorQuantity]; for (i=0; i如何將New的記憶體釋放? ========================= 語言是工具,最重要是如何解決問題。 發表人 - Leway 於 2004/01/13 17:00:18 |
agogo
一般會員 發表:2 回覆:4 積分:1 註冊:2004-01-08 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
agogo:您好
下面是我的方法,但是運行不正確。
if (m_ViewProperty.wWC_AnimatorQuantity > 0) { for (i=0; i< m_ViewProperty.wWC_AnimatorQuantity; i ) { for (j=0; j<(WORD)m_pAnimator[i].nFrame; j ) { delete m_pAnifrmImg[i][j]; m_pAnifrmImg[i][j] = NULL; } delete []m_pAniframe[i]; m_pAniframe[i] = NULL; } delete []m_pAnifrmImg; m_pAnifrmImg = NULL; delete []m_pAniframe; m_pAniframe = NULL; delete []m_pAnimator; m_pAnimator = NULL; }========================= 語言是工具,最重要是如何解決問題。 發表人 - Leway 於 2004/01/13 17:07:05 |
agogo
一般會員 發表:2 回覆:4 積分:1 註冊:2004-01-08 發送簡訊給我 |
if (m_ViewProperty.wWC_AnimatorQuantity > 0) { for (i=0; i< m_ViewProperty.wWC_AnimatorQuantity; i ) { for (j=0; j<(WORD)m_pAnimator[i].nFrame; j ) { delete m_pAnifrmImg[i][j]; //這邊已經將記憶體釋出了所以應該不用加下面這行 m_pAnifrmImg[i][j] = NULL; //試著將這行刪除看看 :) } delete []m_pAniframe[i]; m_pAniframe[i] = NULL; //試著將這行刪除看看 :) } delete []m_pAnifrmImg; m_pAnifrmImg = NULL; //試著將這行刪除看看 :) delete []m_pAniframe; m_pAniframe = NULL; //試著將這行刪除看看 :) delete []m_pAnimator; m_pAnimator = NULL; //試著將這行刪除看看 :) } |
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
Leway您好: 建議您用TList來管理你的物件會比較方便些,也不易產生錯誤..
請參考The right list for the right job這篇文章...
/*生活是一種藝術,用心生活才能享受生活*/發表人 - axsoft 於 2004/01/13 23:40:54 |
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
agogo
一般會員 發表:2 回覆:4 積分:1 註冊:2004-01-08 發送簡訊給我 |
if (m_ViewProperty.wWC_AnimatorQuantity > 0) { for (i=0; i< m_ViewProperty.wWC_AnimatorQuantity; i ) { for (j=0; j<(WORD)m_pAnimator[i].nFrame; j ) { delete m_pAnifrmImg[i][j]; } delete []m_pAniframe[i];//改成delete m_pAniframe[i]; } delete []m_pAnifrmImg;//改成delete m_pAnifrmImg; delete []m_pAniframe;//改成delete m_pAniframe; delete []m_pAnimator;//改成delete m_pAnimator; }如果還不行的話,我也不知道了,因為我都是將寫的~:) |
Leway
一般會員 發表:43 回覆:71 積分:22 註冊:2003-07-29 發送簡訊給我 |
|
xufs
一般會員 發表:16 回覆:26 積分:8 註冊:2003-04-23 發送簡訊給我 |
|
xufs
一般會員 發表:16 回覆:26 積分:8 註冊:2003-04-23 發送簡訊給我 |
您给m_pAnifrmImg动态分配内存有问题,应该是: m_pAnifrmImg = new CIMGFile**[m_ViewProperty.wWC_AnimatorQuantity];
....
m_pAnifrmImg[...]=new CIMGFile*[...]; //缺该分配!?
....
m_pAnifrmImg[i][j]=new CIMGFil[m_pAnifrmImgFile];
.... 释放内存:
for(int i; ...)
{
for(int j; ...)
delete[] m_pAnifrmImg[i][j];
delete[] m_pAnifrmImg[i];
}
delete[] m_pAnifrmImg;
xufs@hqu.edu.cn
|
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |