2维数组赋值

3

我正在尝试给一个二维数组的特定成员分配值,但无法使以下代码正常工作。非常非常感谢您的帮助。

int myArray[5][5] = {[1][1]{1},[2][2]{2},[3][3]{3},[4][4]{4}};

main()
{
  printf("%d %d\n", myArray[1][1], myArray[4][4]);
} 

代码出了什么问题?是编译失败、崩溃还是给出了意外的结果? - simonc
我遇到了以下编译错误array.c:3: error: expected ‘=’ before ‘{’ token array.c:3: error: expected ‘}’ before ‘[’ token - Me Unagi
haccks的答案仅在c99中有效:阅读:奇怪的初始化表达式? - Grijesh Chauhan
1个回答

3
您正在初始化数组的方式
int myArray[5][5] = {[1][1]{1},[2][2]{2},[3][3]{3},[4][4]{4}};

有误。如果您对指示符感兴趣,可以按照以下方式初始化它。

int myArray[5][5] = {[1][1] = 1,[2][2] = 2,[3][3] = 3,[4][4] = 4};

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