首頁 > 後端開發 > C++ > 主體

處理指標時,「delete[]」如何知道陣列的大小?

DDD
發布: 2024-11-17 22:25:02
原創
687 人瀏覽過

How Does `delete[]` Know the Size of an Array When Dealing with Pointers?

delete[] 如何區分數組和其他指標?

在 C 中,delete[] 運算子會釋放為數組分配的內存,但是它如何知道指標何時是數組?

編譯器注意事項

儘管您提供的程式碼存在不確定性,但編譯器無法確定指標是指向陣列還是單一元素。

託管數組資訊

動態分配的數組儲存指向第一個元素的指標之外的附加資訊。此資訊包括數組中元素的數量。

Delete[] 操作

當在陣列指標上使用delete[] 時,它使用附加資訊:

  • 識別分配是一個數組。
  • 解除分配適當的元素數量。

替代「刪除」語法

有些人質疑是否需要單獨的 delete[] 語法,因為運行時庫已經管理數組大小資訊。然而,C 的最初設計原則是透過避免為非陣列記憶體區塊分配額外的空間來最大程度地減少非陣列使用者的開銷。

Delete[] Specificity

因此,delete[] 用於明確通知運行時庫分配的記憶體是一個數組,以便它們能夠正確地釋放它。雖然這在現代計算中似乎有些過分,但在記憶體優化至關重要的場景中它仍然是有益的。

以上是處理指標時,「delete[]」如何知道陣列的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板