我很確定內置類型的數組是單位化的,而UDT數組是默認初始化的。數組初始化
int foo[5]; // will contain junk
Foo foo[5]; // will contain 5 Foo objects that are default initialized
這不管陣列是否被堆棧或堆上分配發生。
但是,我發現很難找到這方面的權威來源。 Bjarne表示:
「數組和結構的成員是默認初始化或不是取決於數組或結構是靜態的」,這並沒有真正地告訴我太多。
我也試過在標準中找到一些東西,但到目前爲止沒有任何結果。
有誰知道權威來源確認上述?
你用'Foo'取決於什麼是例如' Foo' - 如果它是一個POD結構(例如'struct Foo {int x;}'),它將不會被默認初始化。 – 2009-10-27 02:08:08