delete[] 如何區分數組和其他指標?
在 C 中,delete[] 運算子會釋放為數組分配的內存,但是它如何知道指標何時是數組?
編譯器注意事項
儘管您提供的程式碼存在不確定性,但編譯器無法確定指標是指向陣列還是單一元素。
託管數組資訊
動態分配的數組儲存指向第一個元素的指標之外的附加資訊。此資訊包括數組中元素的數量。
Delete[] 操作
當在陣列指標上使用delete[] 時,它使用附加資訊:
替代「刪除」語法
有些人質疑是否需要單獨的 delete[] 語法,因為運行時庫已經管理數組大小資訊。然而,C 的最初設計原則是透過避免為非陣列記憶體區塊分配額外的空間來最大程度地減少非陣列使用者的開銷。
Delete[] Specificity
因此,delete[] 用於明確通知運行時庫分配的記憶體是一個數組,以便它們能夠正確地釋放它。雖然這在現代計算中似乎有些過分,但在記憶體優化至關重要的場景中它仍然是有益的。
以上是處理指標時,「delete[]」如何知道陣列的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!