[英]C++ Dynamic Memory Allocation - char*
我在理解C ++中動態內存分配的一部分時遇到了問題。
我知道這樣做的標准做法是避免內存泄漏:
double* pvalue = NULL; // Pointer initialized with null
pvalue = new double; // Request memory for the variable
*pvalue = 29494.99;
delete pvalue;
但是,我看過很多這樣的源代碼,並且從不使用delete
釋放內存:
char* text = "something";
所以問題很簡單:我是否應該每次都不再需要char指針(或任何其他指針)時使用delete
? 還是有例外?
我讀了很多書,但我只會變得更加困惑,所以我希望有人能幫助我。
編輯 :
謝謝您的解釋。 終於我明白了,我可以對源代碼進行更改而不必擔心!
您應該使用new
delete
您創建的所有內容,並且別無其他。
char* text = "something";
這不會使用new
創建任何內容,因此您不應delete
它。
實際上,該語句不會創建任何內容 (除了指針之外),而是將text
設置為指向程序啟動時創建的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.