好吧previous問題得到了明確回答,但我發現了另一個問題。C++新增&刪除以及字符串和函數
如果我這樣做:
char *test(int ran){
char *ret = new char[ran];
// process...
return ret;
}
,然後運行它:
for(int i = 0; i < 100000000; i++){
string str = test(rand()%10000000+10000000);
// process...
// no need to delete str anymore? string destructor does it for me here?
}
所以的char *轉換爲字符串後,我不用擔心刪除了嗎?
編輯:作爲回答,我必須delete[]
每個new[]
電話,但在我的情況下,其不可能的,因爲指針迷路了,所以問題是:我怎麼轉換字符字符串是否正確?
回覆:編輯...或者不要不會丟失指針(按照下面的答案)或(更好的是)不要指向'new',只需使用'std :: string'來保存字符串。你爲什麼想自己做內存分配? – Johnsyweb 2010-06-03 14:06:44