我们的老师说我们必须使用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 *不兼容的错误。
我也尝试过设置与&的链接。和*以某种方式解决它,但到目前为止它没有成功。如果有人打电话告诉我它是什么,我正在监督 - 谢谢!
答案 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, ...}
)或足够长的字符列表。