我的编译器给了我这个警告:从不兼容的指针类型 [-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;
}
最佳答案
指向指针的指针无法转换为指向数组的指针。而数组可以转换为指针,仅适用于多维数组的最外层维度。
您需要更改函数的声明:
void transform_labels(int *array, int **labels, int NPAT){
关于c - 警告 : passing argument 2 of 'transform_labels' from incompatible pointer type [-Wincompatible-pointer-types]|,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59306784/