我正在尝试根据文件的行号设置数组的长度。我在main函数中声明了我的数组并传递给了setMatrix。
主要功能
int x;
x=numberOfId();
int graph[x][x];
int path[x];
char *pathString[x];
setMatrix(graph,path,pathString,x);
setMatrix function
void setMatrix(int **graph,int *path,char **pathString,int k){
int i,j;
for(i=1;i<k;i++){
for(j=1;j<k;j++){
graph[i][j]=INFINITY;//I get error here
}
}
我确信我犯了一个容易犯的错误但却看不到。
答案 0 :(得分:1)
函数定义应该与数组匹配:
void setMatrix(int x, int graph[x][x], int path[x], char *pathString[x])
{
int x
必须是第一个,以便它在后面的参数的范围内。可以使用指针表示法而不是最内层的数组绑定,但它可以作为自我文档来使用数组表示法。
数组和指针不同; int **
与int[x][x]
不同。