我想将文件中的数据读取到2d数组中,但在(array[I][j]=#(行中,出现了此问题
void readmatrix(int **array,FILE * f,int row,int col){
for(int i=0 ;i<row ;i++){
for(int j=0 ;j<col;j++){
int* num = NULL;
fscanf(f, "%d",num);
array[i][j] = &num ;
}
}
}
您将int指针的指针传递给函数,并将num指针的地址保存到数组中。下面只需在调用函数之前将数组强制转换为(int*(即可。
void readmatrix(int *array,FILE * f,int row,int col){
for(int i = 0; i < row * col; i++){
int num;
fscanf(f, "%d", &num);
*(array + i) = num ;
}
}