我的 XCode(默认编译器应该是 clang?)在此代码上向我显示警告:
Incompatible pointer types passing 'char *(*)[2]' to parameter of type 'char ***'
(调用函数时)
void func (char ***arrayref, register size_t size) {
/// ...
}
int main()
{
char *array[2] = {"string", "value"};
func(&array, 2);
}
虽然这段代码没有问题(=没有警告):
void func (char **arrayref, register size_t size) {
/// ...
}
int main()
{
char *array[2] = {"string", "value"};
func(array, 2);
}
虽然这消除了警告
func((char***)&array, 2);
我仍然不知道为什么第一个发出警告,而后者没有。
此外,当第一个出现问题时,我还希望第一个发出警告,例如:
Incompatible pointer types passing 'char *[2]' to parameter of type 'char **'