分段在分配数组值时发生故障

时间:2017-02-28 21:06:35

标签: c arrays pointers

我正在尝试根据文件的行号设置数组的长度。我在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
    }
}

我确信我犯了一个容易犯的错误但却看不到。

1 个答案:

答案 0 :(得分:1)

函数定义应该与数组匹配:

void setMatrix(int x, int graph[x][x], int path[x], char *pathString[x])
{

int x必须是第一个,以便它在后面的参数的范围内。可以使用指针表示法而不是最内层的数组绑定,但它可以作为自我文档来使用数组表示法。

数组和指针不同; int **int[x][x]不同。