【发布时间】:2019-06-21 18:36:24
【问题描述】:
我收到了这个警告,并想知道为什么。我在这里找到了许多线程来解决 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: 'function': 'int **' 与 'int [2][4]' 的间接级别不同
任何关于为什么会这样或如何解决它的想法都非常感谢。
【问题讨论】:
-
int**是不是二维数组。您不能使用这样的指针访问二维数组元素。 -
数组不是指针。数组衰减 成指针,但这并不意味着二维数组可以衰减成指针对指针。 c-faq.com/aryptr/index.html
标签: c parameters indirection