對于像 string *stringarray = new string[100]; 這樣的語句,釋放指針時不能象 delete stringarray 這樣寫,因為這樣寫的話,只是銷毀了第一個string對象的指針,其余的99個根本沒有被銷毀,這種情況極易引起內(nèi)存泄露。
上述語句必須這樣寫:string *stringarray = new string[100];
delete []stringarray;
如果你調用new時用了[],調用delete時也要用[]。如果調用new時沒有用[],那調用delete時也不要用[]。
當你的構造函數(shù)里有new 的指針時,牢記這點更加重要。
如果類的成員有指針變量,那么一定記得在構造函數(shù)中為它分配內(nèi)存或者讓它指向NULL,更關鍵的是要在析構函數(shù)里把指針
變量釋放掉,同時記得不要產(chǎn)生野指針。我推薦一個最笨的也是最有效的方法,操作指針時首先檢查它是否有效。記住你只
要用了new,就一定用delete。