我刚刚回来开发用于日食的C和我有很大的问题,我不知道如何解决,不记得我曾经有过这样的开发之前。无论如何,我会指出你的两个问题(我的例子很容易在这里发布):
#include <stdio.h>
int change_array(char *str, char *a[]) {
a[0] = "changed [0]";
if (fgets(str, 200, stdin) != NULL) {
}
return 0;
}
int main() {
char str[200];
char a[15][200];
change_array(str, a);
printf("a[0]: %s\n", a[0]);
printf("str: %s\n", str);
return 0;
}
答案 0 :(得分:1)
问题出在这里...... int change_array(char *str, char *a[])
a
的维度未定义,因此它不知道步骤每个*a
和a
是指向char的指针数组。但是,您传递的是200个字符的数组数组。因此,不兼容的类型错误。
我相信你的问题会消失......
int change_array(char *str, char (*a)[200])
在这种情况下a
是一个指向200个字符数组的指针,编译器现在知道步进a
的每个索引的距离