C ++ - 字符数组

时间:2014-06-09 14:07:23

标签: c++ visual-c++ recursion arrays

我们的老师说我们必须使用2-D char数组,所以我创建了一个:

char theArray[14][14] = {'a','b','c','d'} // after 'd', it continues 'e','f' ...

之后我想将该数组发送到一个递归函数(类型为void)以及两个只包含一个整数的变量 在我使用的主文件中:

travel(theArray, x, y);

将数组与两个变量一起发送到函数 而我在main()之外的函数有

void travel (char theArray[][14], int y, int x){...}

我的编译器告诉我一些事情“从char转换为char [14] [14]是不可能的。我绝对不知道它试图告诉我什么。到目前为止我虽然必须做”[] [14]“告诉函数数组的大小。

当我删除[] [14]时,我的主文件出现了char和char *不兼容的错误。

我也尝试过设置与&的链接。和*以某种方式解决它,但到目前为止它没有成功。如果有人打电话告诉我它是什么,我正在监督 - 谢谢!

1 个答案:

答案 0 :(得分:1)

这适用于我(它编译没有错误或警告并运行):

char theArray[14][14] = {
    {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'},
    {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'},
    "abcdefghijklm", "abcdefghijklm", "abcdefghijklm", "abcdefghijklm", 
    "abcdefghijklm", "abcdefghijklm", "abcdefghijklm", "abcdefghijklm", 
    "abcdefghijklm", "abcdefghijklm", "abcdefghijklm", "abcdefghijklm"};
void travel(char theArray[][14], int y, int x){
  (void)theArray; (void)y, (void)x;
}
int main() { 
  int x = 0, y = 0;
  travel(theArray, x, y);
  return 0;
}

可能您错误地初始化了theArray。要初始化一个元素,请在大括号("abcdefghijklm")中指定字符串文字({'x', 3, ...})或足够长的字符列表。