2014-09-11 51 views
5

我有這個文件範圍:是一個靜態的char []緩衝區初始化

static char foo[256];

是內存初始化爲零,在所有平臺和構建配置? (即它是標準的C++)。

+0

是的,它是由C++標準保證的。如果你發現數組的內容沒有被清零,你有一個不合格的編譯器。 – 2014-09-11 09:16:24

回答

13

內存在所有平臺上初始化爲零並且構建配置?

是的,所有的非局部變量都是零初始化的。

(即它是C++標準)

是。 C++ 11 3.6.2指定了如何初始化非局部變量。特別是:

  • 變量與靜態存儲持續時間或線程存儲期限爲零初始化任何其它初始化發生之前。