我已經了解了野指標以及如何避免它們。我聽說它們指向記憶體中的隨機值,我想知道它們是否實際上具有隨機且完全不相關的值,或者它們是否指向可能依賴于實作的某個值。它是哪一個?
uj5u.com熱心網友回復:
這些懸空指標在“數學”意義上不是隨機的。它們指向一個依賴于實作的位置(基于硬體架構、運行時序列等),您的程式不應該訪問該位置,并且從您的程式的角度來看,指向位置的內容是未定義的。作業系統可以隨時重新分配和寫入任何內容,因此指向該記憶體的指標在其值中被視為“隨機”。
uj5u.com熱心網友回復:
該值不是隨機的,因為它具有成為任何值的均勻概率。該值只是未知數。
它可能指向程式中其他東西正在使用的記憶體。寫入此記憶體可能會導致程式的其他部分發生故障,或者可能觸發保護故障。
它可能指向未使用的記憶體。從此存盤器中讀取可能會觸發保護故障。寫入此記憶體可能會正常作業,或者可能會觸發保護故障。
你不知道你會得到哪些結果。[1]它并不總是一樣的。所以使用未初始化的指標沒有實際目的。
- 硬體限制了一些(但不是全部)選項。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/431172.html
標籤:C
