Я получаю это предупреждение и ломаю голову, почему. Я нашел здесь много потоков, которые обращаются к этому предупреждению в компиляторе VS 2017, но не к этой конкретной комбинации: почему int ** не имеет того же уровня косвенности, что и int [X] [Y]?
Вот дистиллированный пример, который генерирует предупреждение:
void testfunc(int ** input, int ** output) {
/*
* Do something
*/
}
int main()
{
int firstvar[2][4];
int secondvar[2][4];
testfunc(firstvar, secondvar);
}
Я получил:
testcode.c(46): предупреждение C4047: 'функция': 'int **' отличается уровнями косвенности от 'int [2][4]'
Любые мысли о том, почему это может быть или как это исправить, очень ценятся.
int**
не является двумерным массивом. Вы не можете получить доступ к элементам 2D-массива, используя такой указатель. - person Eugene Sh.   schedule 28.01.2019