警告通过了“的参数1”&引用;从默认情况下启用的不兼容指针类型 randomsign(整数**网格,整数大小){ int m=rand()%size; int n=rand()%size; 网格[m][n]=1; } int main() { srand(时间(空)); int i,j,大小; scanf(“%d”,大小(&S); 整数网格[大小][大小]; 对于(i=0;i

警告通过了“的参数1”&引用;从默认情况下启用的不兼容指针类型 randomsign(整数**网格,整数大小){ int m=rand()%size; int n=rand()%size; 网格[m][n]=1; } int main() { srand(时间(空)); int i,j,大小; scanf(“%d”,大小(&S); 整数网格[大小][大小]; 对于(i=0;i,c,function,pointers,C,Function,Pointers,数组和指针是不同的。数组是一系列特定类型的连续元素。指针是保存另一个对象地址的小对象 您的函数需要一个指向另一个指针的指针。但是,您试图为它提供一个数组。这可能无法工作 修复代码的一种方法是让函数接受指向数组的指针(而不是指向指针的指针) randomAssign(int **grid, int size){ int m = rand()%size; int n = rand()%size; grid[m][n] = 1; } int main() { sr

数组和指针是不同的。数组是一系列特定类型的连续元素。指针是保存另一个对象地址的小对象

您的函数需要一个指向另一个指针的指针。但是,您试图为它提供一个数组。这可能无法工作

修复代码的一种方法是让函数接受指向数组的指针(而不是指向指针的指针)

randomAssign(int **grid, int size){

    int m = rand()%size;
    int n = rand()%size;
    grid[m][n] = 1;

}

int main()
{
    srand(time(NULL));
    int i, j, size;
    scanf("%d", &size);
    int grid[size][size];

    for(i=0; i<size; i++){
            for(j=0; j<size; j++){
                    grid[i][j] = 0;
            }
    }

randomAssign(grid,size); //warning

    return 0;
}
这实际上与具有
int(*grid)[size]
相同,第一个
size
是冗余的(),但是它有一些文档用途

void randomAssign(int size, int grid[size][size])