Struct 與 TList 的用法 |
尚未結案
|
physics
一般會員 發表:11 回覆:11 積分:9 註冊:2002-05-21 發送簡訊給我 |
請問一下, 我有一些 struct 想納入 TList 來做管理, 以便 delete, add or sort, 以下是我的 code: .h 宣告:
private: // User declarations
struct IDLobj
{ int hobj;
double Level;
} *pIDLobj;
TList* pIDLobjList; .cpp 程式碼:
void __fastcall TfrmVecImgEn::Button5Click(TObject *Sender)
{
// New 一個新的 TList
pIDLobjList = new TList; // Add Struct into TList
for (int i=0; i<3; i )
{ pIDLobj = new IDLobj;
pIDLobj->hobj = 100 i;
pIDLobj->Level = 200.0 (double)i*0.1;
pIDLobjList->Add(pIDLobj);
}
// 測試殺掉一個 Tlist 的 Item
pIDLobjList->Delete(1);
// Display Struct, then Delete Struct
for (int i=0; iCount; i )
{ IDLobj* pIDLobjO = (IDLobj*)pIDLobjList->Items[i];
Memo1->Lines->Add(IntToStr(pIDLobjO->hobj));
Memo1->Lines->Add(FloatToStrF(pIDLobjO->Level,ffFixed,5,2));
} // 清掉 struct 及 TList
delete pIDLobj;
delete pIDLobjList;
} 請問這樣寫對嗎? (Compile, Run 是都對啦)
第一個 for loop, 我一直重複加入 struct object, 可以嗎?
然後 delete pIDLobj 可以清掉所有的記憶體配置嗎? Thanks a lot.
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
physics 你好,
承lcsboy 所言, 你的做法是不會清除你所配置的記憶空間, 是會造成 memory leak 的, 我還有以下幾小點發現:
(1)
for (int i=0; iCount; i ) // 這裡的 iCount 是多少呢? 是不是正確的值?
{ ... }
(2)
delete pIDLobj; // 依你的程式片斷, 將只會清除最後一個配置的 IDLobj 你可以參考以下文章, 建立一個 較可靠的 TList 類別
http://www.bcbdev.com/articles/list.htm *真實的事物最美, 簡單的道理最好, 我能體會的 太少*
------
不要忘記呼吸,不要忘記編程! ∩__∩ |
johnny_1121
一般會員 發表:12 回覆:58 積分:24 註冊:2002-04-15 發送簡訊給我 |
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
|
physics
一般會員 發表:11 回覆:11 積分:9 註冊:2002-05-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |