我有一個C++代碼,其中有多種數據類型。重要的是,我有一個類:我應該只需要擔心新的並將其與刪除匹配?
class coordinate{
int x, y;
public:
void set_values(int, int);
}
然後我可能會說:
coordinate* origin = new coordinate;
顯然,收回分配給原產地記憶我終於說:
delete(origin);
到目前爲止,好...
我的問題是有沒有其他數據類型的刪除/銷燬我必須絕對手動注意防止內存泄漏?
在考慮中的其它數據類型是:
串(此數據類型的一個目的似乎有一個端()函數),字符串流,CHAR []。
例如,我有一個函數的setName(),它會從main()中反覆做這個叫:
void setname(){
for(int k = 0; k < 10; k++){
string NAME = "Point ";
stringstream s;
s << k;
NAME += s.str();
char name[7];
strcpy(name,NAME.c_str());
/* some other stuff... */
NAME.end(); //<--------------is stuff like this really needed?
//will memory held by NAME, s and name be automatically released as k increments?
}
}
'std :: string :: end()'是STL迭代機制的一部分。它與內存管理無關。 :) – 2010-11-02 22:15:30
您是否想過查找'std :: string :: end()'是做什麼的? – 2010-11-02 22:15:43
@Oli:我還是他? ; p – 2010-11-02 22:19:59