指標問題 |
尚未結案
|
deanmac85
一般會員 發表:13 回覆:4 積分:3 註冊:2007-05-29 發送簡訊給我 |
我可以利用這種方式將記憶體正確release掉嗎 ?
當按了多次Button2及Button3後將local及global指標存在global vector內 在適當時機時按下Button4後將所有memory release 以下為source code,是否為可這樣做. [code cpp] int *p2 = NULL ; vector void fff(int* &a) { a = new int [100000]; vtr_int_list.push_back(a) ; } void __fastcall TForm1::Button2Click(TObject *Sender) { int *p1 = NULL ; fff(p1); fff(p2); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { int *p1 = NULL ; fff(p1); fff(p2); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { int n; for(n=0;n char ss[512] = {'\0'}; sprintf(ss,"%p",vtr_int_list[n]); Memo1->Lines->Add(ss); delete [] vtr_int_list[n] ; vtr_int_list[n] = NULL ; } vtr_int_list.clear(); } //------------------------------------------------------------------------- [/code] |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
初步看了一下,覺得不應該參數設為「參考」。否則怪怪的。
void fff(int* &a) { a = new int [100000]; vtr_int_list.push_back(a) ; } 以上若是我推測你的想法,我會改成 int *fff() { int *a = new int [100000]; vtr_int_list.push_back(a) ; return a; }
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |