簡體   English   中英

C ++動態內存分配-char *

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM