赋值从指针生成整数,而不使用C中的强制转换[-Wint conversion]
我想将文件中的数据读取到2d数组中,但在(array[I][j]=&num;)行中出现此问题赋值从指针生成整数,而不使用C中的强制转换[-Wint conversion],c,pointers,C,Pointers,我想将文件中的数据读取到2d数组中,但在(array[I][j]=&num;)行中出现此问题 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);
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 ;
}
}
}
void readmatrix(整数**数组,文件*f,整数行,整数列){
对于(inti=0;i您将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 ;
}
}
void readmatrix(int*数组、文件*f、int行、int列){
对于(int i=0;i|
int*num=NULL;fscanf(f,“%d”,num);
那么,您想fscanf
将输入整数存储在地址0?不太好。您需要传递有效的int
的地址,而空指针不是。然后数组[i][j]
需要一个int
存储在那里,但是&num
是一个int**
。我想你可能想要int num;fscanf(f,“%d”,&num);array[I][j]=num;
或者更简单,用fscanf(f,“%d”,&array[I][j]);
或者fscanf(f,“%d”,array[I]+j);