Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
赋值从指针生成整数,而不使用C中的强制转换[-Wint conversion]_C_Pointers - Fatal编程技术网

赋值从指针生成整数,而不使用C中的强制转换[-Wint conversion]

赋值从指针生成整数,而不使用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);

我想将文件中的数据读取到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);
            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);