在C语言中初始化二维/三维数组的速记方式是什么?

3
我想知道在C语言中是否有一种类似以下语法的简写方式来初始化二维或三维数组:
int array[1024] = {[0 ... 1023] = 5};

1
你的标题显然漏掉了“1D”,这也是你发布的代码实际上所代表的。想一想,“D”与你的问题有什么关系呢? - WhozCraig
你的例子是gcc扩展。在C中是什么意思? - 2501
这是一个GCC扩展,不是标准C。 - unwind
@WhozCraig 我在问是否有一种使用 '[first ... last] = value' 语法初始化多维数组的方法 - 我发布的代码只是使用标准数组来演示这种语法的例子。不过还是感谢大家纠正我的错误。 - Liam Lacey
不完全是重复,但回答了问题:https://dev59.com/M3zaa4cB1Zd3GeqPKw7s - Lundin
1个回答

5

您使用的初始化方法不是标准C语言,而是GCC扩展(指定初始化器)

要初始化一个三维数组,请使用以下内容:

int array[10][10][10] = {[0 ... 9] [0 ... 9] [0 ... 9] = 42};

演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接