首頁  >  文章  >  後端開發  >  為什麼C刪除後不自動將指標設為NULL?

為什麼C刪除後不自動將指標設為NULL?

DDD
DDD原創
2024-11-11 01:53:02433瀏覽

Why Doesn't C   Automatically Set Pointers to NULL After Deletion?

刪除後自動置空:為什麼不呢?

執行刪除操作後自動將指標設為 NULL 的做法是程式設計師爭論的話題。許多人認為這項措施將顯著減少無效指標所造成的崩潰的發生。然而,C 標準並沒有採用這種方法,這讓用戶好奇這項決定背後的原因。

根據C 的創建者Bjarne Stroustrup 的說法,有幾個因素導致了排除自動指針無效:

性能注意事項:

引入額外的指令將指標清除可能會影響刪除操作的整體效能,尤其是在效能至關重要的情況下。

常數指標:

常數指標指的是無法修改的記憶體位置。自動將此類指標設為 NULL 可能會導致未定義的行為,因為不允許修改 const 物件的內容。

但是,Stroustrup 也承認這些問題可以透過對 const 指標進行專門處理來解決。

此標準允許對無法清除的右值(臨時物件)進行刪除操作。語言本身施加的這種技術限制構成了自動指針無效的另一個障礙。

以上是為什麼C刪除後不自動將指標設為NULL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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