[入门] 二维数组在D的main主函数外初始化

kennes 2007-07-23
发现了一个问题:二维数组在D的main主函数外不被支持?

int[2][3]myarray = [5,5,5,5,5,5];

int main(char[][] args)
{
    return 0;
}


运行上面代码出错:“ Error: too many initializers, 6, for array[3]”


如果把数组移到main主函数里面,就能编译通过了,是什么原因?另外,在C++中是没有这个问题的。
int main(char[][] args)
{
    int[2][3]myarray = [5,5,5,5,5,5];
    return 0;
}
DavidL 2007-07-23
真的有这个bug...

http://d.puremagic.com/issues/
登记这个bug吧
kennes 2007-07-23
原来是BUG啊!为什么这么多年没有解决。
oldrev 2007-07-23
我都实验了一下,应该是作为非局部变量时无法初始化,报告去吧
kennes 2007-07-23
那我就报告去了。



heromyth 2007-07-25
呵呵,大家还是再考虑考虑吧。D和C++还是有不同的。

下面代码是正确的:

二维数组初始化
char[][] words = ["a"[], "list", "of", "some", "words"];
静态定义
static int[2][3] a = [ [2,3], [6,5], [3,4] ];
Global site tag (gtag.js) - Google Analytics