【发布时间】:2017-05-07 18:34:43
【问题描述】:
我正在尝试实现一个从文件中读取行并将它们放入字符串数组的函数。但它给了我警告:
expected char ** 但是参数的类型是 char * (*)[(sizetype)(numberOfchar)]
它在 Windows 上运行,但是当我切换到 Linux 时它停止运行。
这里是调用者和数组变量:
char *hashes[numberOfchar];
PutInArray(textName, numberOfchar, &hashes);
这是函数(void* 用于程序的下一部分,线程):
void* PutInArray(char* k, int d, char *tab[d]) {
FILE* fp = NULL;
int i;
fp = fopen(k, "r");
if(fp != NULL) {
for (i = 0; i < d; i++) {
tab[i] = (char *)malloc((34) * sizeof(char));
fgets(tab[i], 34, fp);
}
fclose(fp);
}
}
【问题讨论】:
-
将“d”作为单独的参数传递。
-
我试过没有错误但是当我像这样执行它时程序停止
PutInArray(textName,numberOfchar,&hashes[numberOfchar]); -
格式化/缩进..........................
-
我没听懂你的意思?
-
欢迎来到 StackOverflow。请采取tour,学习提出好问题stackoverflow.com/help/how-to-ask,制作minimal reproducible example。如果您正在寻求有关调试代码的帮助,请参阅ericlippert.com/2014/03/05/how-to-debug-small-programs 如果您引用错误消息,请不要删除感兴趣的部分。