1

如何在c中初始化没有指针的三维char数组并访问它?
我尝试了以下方法:

char card[1][3][15]={            
                      {"iron","man"},  
                      {"contagious","heide"},  
                      {"string","middle"}  
                     };  

但我得到

  **Error:too many initializers**  
  **Warning: Array is only partially initialized**  
4

3 回答 3

3

让我们举一个简单的例子......您可以使用自己的值而不是这些整数:

宣言:

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

我希望,这对你来说很清楚。

于 2012-05-23T04:48:55.290 回答
2

考虑到您的示例本身:

我认为应该是

char card[1][3][15]={ {"iron","man", "contagious"}};

这意味着您可以有效地创建 3 个长度为 15 的 char 数组。您的第一个维度 1 没有太大影响。

所以,你可以让它像

char card[2][3][15]={ {"iron","man", "contagious"},
                      {"iron","man", "contagious"}};

因此,为了您的简单理解,行数表示第一个维度,每行中的列数表示第二个维度,每列中的元素数(在本例中为字符)表示第三个维度。

所以,现在您可以看到,对于您问题中的数据,您应该将数组声明为char char[3][2][15]

于 2012-05-23T05:17:57.977 回答
0
char card[1][3][15]={ { {"iron","man"},{"contagious","heide"},{"string","middle"}}
                     };

你应该在里面放另一个大括号。我想这会对你有所帮助。

于 2012-05-23T04:51:45.960 回答