我希望能够使用const char *命名的2D数组调用函数。在我的程序中,我打开一个CSV输入,读取行数,创建一个适当大小的2D数组(从文件复制数据 - 这个步骤不是为了问题而在代码中)然后想要打印它(不是在主函数中,减少行数)。
对于此示例,我们可以忽略CSV组件,因此我添加了一个示例数组,只是为了试用它。
我知道我在main()和show()之间的数组切换中的指针迷路了,因为我得到错误"下标值既不是数组也没有指针也没有矢量。"我只是不知道如何解决它。关于如何解决这个问题的任何指示?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define col 4
void show(const char* A){
int i, j;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(A[i][j])
printf("%s\t", A[i][j]);
else
printf("%s\t", "NULL");
}
printf("\n");
}
}
int main () {
FILE* t1count = fopen("input/t1_input.csv", "r");
t1row = countlines(t1count); // Where countlines is another function I have written but not relevant in this case
const char *strings[t1row][col]; //For this example we can use: = {{"4001","CA52","C14M731345","5"},{"4010","CA52","C14M731559","5"},{"4101","CA52","C14M731559","5"},{"4029","CA72","B15M731038","9"}};
show(strings);
}
谢谢!
答案 0 :(得分:0)
函数参数void show(const char* A)
与调用show(strings);
时传递的参数之间存在类型不匹配
将您的函数原型更改为
void show(const char* A[][col])