我习惯使用
new int[] {1,2,3,4,5};
用于初始化数组。但现在看来,这不再起作用,我必须明确说明有多少元素,
new int[5] {1,2,3,4,5};
所以编译器忘了怎么算?
为了使这个问题成为一个封闭的问题,有没有办法省略元素的数量?
答案 0 :(得分:21)
这在当前版本的C ++中从未起作用,您只能零初始化(或不初始化)动态分配的数组。
一直有效的是非动态分配的数组初始化:
int myarray[] = {1, 2, 3, 4, 5};
也许你对此感到困惑?
即使在C ++ 0x中,在新表达式中省略显式数组大小说明符也不是合法语法。
答案 1 :(得分:2)
C ++从未允许使用上面未知大小的元素初始化数组。我知道的唯一两种方法是指定元素的数量或使用指针。