const size_t size = 5;
int *i = new int[size]();
for (int* k = i; k != i + size; ++k)
{
cout << *k << endl;
}
儘管我已經值通過使用()操作者初始化動態數組元素,輸出I得到的是C++初始化動態數組元素
135368
0
0
0
0
不知道爲什麼在第一個數組元素被初始化到135368.
有什麼想法?
我認爲這是一個編譯器錯誤。有些編譯器似乎在初始化時遇到了一些問題:http://www.boost.org/doc/libs/1_40_0/libs/utility/value_init.htm – 2009-10-16 18:01:09
使用'new []'對數組進行值初始化甚至是格式良好?我在標準中找不到任何東西(建議參見§5.3.4)。 – 2009-10-16 18:06:14
'new-type-id'不能是語法上的函數類型。這樣,'T [N]()'不是一個函數數組,而是一個數組值初始化的(所以'5.3.4/15'適用)。 – 2009-10-16 18:09:21