首頁 >後端開發 >C++ >什麼時候應該在 C 中使用'new”關鍵字?

什麼時候應該在 C 中使用'new”關鍵字?

DDD
DDD原創
2024-12-28 22:08:14165瀏覽

When Should You Use the `new` Keyword in C  ?

在 C 中什麼時候需要 new 關鍵字?

在 C 中,建立物件有兩種選擇:使用 new 關鍵字或否。

使用new

MyClass* myClass = new MyClass();
myClass->MyField = "Hello world!";
  • 為堆疊上的物件分配記憶體(自由儲存)。
  • 需要明確刪除以釋放分配的記憶體。
  • 即使物件消失,記憶體仍會保持分配狀態直到被刪除作用域。

不使用 new

MyClass myClass;
myClass.MyField = "Hello world!";
  • 為堆疊上的物件分配記憶體。
  • 沒有明確刪除必需的。
  • 當物件退出時,記憶體會自動釋放

選擇注意事項

使用哪一種方法取決於您的特定需求:

  • 使用新的:

    • 到在堆上建立物件。
    • 從函數傳回指向物件的指標。
  • 不要使用 new:

    • 避免手動管理記憶體和潛在的記憶體洩漏。
    • 建立不會離開目前作用域的物件。

附加說明

  • 使用new需要使用delete來釋放分配的記憶體。這是為了防止記憶體洩漏。
  • new 通常用於在堆上建立對象,而不使用 new 通常用於堆疊分配的對象。
  • 堆疊的記憶體容量小於堆,因此在堆疊上分配太多物件可能會導致堆疊溢位。

以上是什麼時候應該在 C 中使用'new”關鍵字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn