我有一個創建與爲什麼我的動態分配數組被初始化爲0?
int *Array = new int[size];
動態分配的數組從我瞭解的一些代碼,數組應該是一個指向存儲陣列的第一個項目。當使用gdb時,我可以調用x Array來檢查第一個內存位置的值,x Array + 1檢查第二個值,等等。我期望有任何應用程序在我的內存中使用內存中的這些點時留下的垃圾值。但是,使用x Array將爲所有這些點返回0x00000000。我究竟做錯了什麼?我的代碼是否將數組的所有值初始化爲零?
編輯:爲了記錄在案,我問,因爲我的計劃是實現這一企圖:http://eli.thegreenplace.net/2008/08/23/initializing-an-array-in-constant-time/。我想確保我的算法是不通過陣列遞增到每一個元素初始化爲0
你不能依賴這種行爲,它是UB! –
如果你想要保證這些零,你可以寫'int * Array = new int [size]();'(注意空尾括號)。 – fredoverflow