2012-06-05 85 views
2

如果您未初始化數組中的元素,則可以在調試時看到它們被分配了一個隨機數。 只是想知道這個數字是如何確定的?C數組元素初始化

回答

3

這些只是那些已經存在於分配陣列空間的內存中的值。所以,這裏沒有「決心」。

2

從技術上講,它是未定義的行爲來讀取未初始化的變量。它們可以是任何東西,從剩餘的內存垃圾到編譯器預定義的值。

+0

不,它不是未定義的行爲。如果這些值與該類型的陷阱表示形式相對應,則只有未定義的行爲。我不知道任何具有陷阱整數類型表示的體系結構。 –

+0

@Jens Gustedt:事實上,似乎還有其他相關話題的爭論,關於怎麼稱呼這種情況。建議? – Tudor

+0

C11具有以下含義:**不確定值** 未指定值或陷阱表示,以及 **未指定值** 本國際標準規定的相關類型的有效值不包括 要求任何實例 –

0

當你聲明一個數組時,堆棧指針將被添加,然後返回第一個元素的地址。就是這樣,內存中的數據不會被改變。

+0

你的回答與我所問的並無任何關係。我問的是隨機數據如何進入(或如何確定)未初始化的數組元素 –