警告:从不兼容的指针类型传递“transform_labels”的参数 2 [-Win兼容指针类型]|

Fra*_*nde 2 c arrays pointers multidimensional-array

我的编译器给了我这个警告:从不兼容的指针类型 [-Win兼容指针类型] 传递'transform_labels'的参数 2,并附注:预期'int (*)[10]',但参数的类型为'int **'

我的代码:

void transform_labels(int array[60000], int labels[60000][10], int NPAT){

    for(int i = 0; i < NPAT; i++){

        int aux = array[i];
        labels[i][aux] = 1;
        printf("%d\n ",*labels[i]);
        if ((i+1) % 10 == 0) putchar('>');

    }

}

int main() {

   load_mnist();
   int loop;
   int** labels;
   allocate_mem(&labels, 60000, 10);
   printf("HERE");
   transform_labels(train_label, labels, 60000);
   return 0;

}
Run Code Online (Sandbox Code Playgroud)

dbu*_*ush 5

指向指针的指针无法转换为指向数组的指针。而数组可以转换为指针,仅适用于多维数组的最外层维度。

您需要更改函数的声明:

void transform_labels(int *array, int **labels, int NPAT){
Run Code Online (Sandbox Code Playgroud)