[入门] 二维数组在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] ]; |