如何在不使用c中的指针的情况下初始化三维char数组

时间:2012-05-23 04:44:53

标签: c arrays

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

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

但我正在

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

3 个答案:

答案 0 :(得分: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} } };

我希望,你很清楚。

答案 1 :(得分:2)

考虑你的例子本身:

我认为应该是

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

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

所以,你可以把它变成

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

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

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

答案 2 :(得分:0)

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

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