可以說我有一個這樣的類:我是否必須刪除我用新分配的wchar_t?
class LolClass {
LPWSTR* stuff;
LolClass::LolClass(LPWCHAR lols) {
stuff = new LPWSTR[100];
for (int i = 0; i < 100; i++) {
stuff[i] = new wchar_t[wcslen(lols)+1];
wcsncpy(stuffs[i], lols, wcslen(lols)+1);
}
}
LolClass::~LolClass() {
delete[] stuff;
}
}
所以如果我叫
LolClass* veryfunny = new LolClass(L"lol!");
那會使我100笑的,問題是,當我打電話
delete veryfunny;
它刪除指針數組,但不是個別wchar_t的,如果我嘗試並通過wchar_t循環並刪除它們,然後我只是崩潰,我不知道該怎麼辦,因爲我知道事實,他們仍然存在,即使我刪除veryfunny後(我通過傳遞類之外的指針之一檢查)
謝謝!
你是什麼「撞車」是指本身被刪除?我們可以看到的任何報告? – elyashiv 2012-08-15 06:27:59
你應該循環並刪除[] stuff [i]',然後是delete [] stuff'。每個'new []'得到'delete []'。 – chris 2012-08-15 06:30:42
你應該爲循環中的所有元素調用delete [] stuff [i],否則你會得到內存泄漏 – CyberDem0n 2012-08-15 06:30:55