gpt4 book ai didi

c - 将矩阵传递给 C 中的方法

转载 作者:行者123 更新时间:2023-11-30 17:08:03 26 4
gpt4 key购买 nike

我有一个基于变量创建的矩阵。我似乎无法为我创建的函数传递这个矩阵。

数字和排名是通过 OpenMPI 接收的。

我得到的错误类似于“预期‘int **’,但参数类型为‘int (*)[(sizetype)(num)]”

这是我所拥有的:

int gHolder(int** spanningTree, int size, int id, int token){
if( size == 0 ) return -1;
if( id < 0 || id >= size || token < 0 || token >= 0) return -1;
if(token == id) return id;

int j;
int holder;
for(j = 0; j<size; j++){
if(spanningTree[id][j] == 1){
holder = gHolder(spanningTree, size, j, token);
if(holder != -1) return j;
}
}
return -1;
}

int main(int argc, char * argv[]) {
int rank;
int num;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &num);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);

int mat[num][num];
int tokenHolder = 7;
mat[0][1] = 1;
mat[0][2] = 1;
mat[1][0] = 1;
mat[2][0] = 1;
mat[2][3] = 1;
mat[2][4] = 1;
mat[3][2] = 1;
mat[4][2] = 1;
mat[4][5] = 1;
mat[4][6] = 1;
mat[5][4] = 1;
mat[6][4] = 1;
mat[6][7] = 1;
mat[6][8] = 1;
mat[7][6] = 1;
mat[8][6] = 1;
holder = gHolder(mat, num, rank, tokenHolder);

最佳答案

您声明 spanningTree 不正确。您需要更改参数顺序,然后可以将其声明为:

int gHolder(int size, int spanningTree[size][size], int id, int token)

或者:

int gHolder(int size, int (*spanningTree)[size], int id, int token)

size 声明需要位于引用之前。

关于c - 将矩阵传递给 C 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33850067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com