我的问题是
void function (const char **params)
{
const char *para;
para = ¶ms[0]; //1
para = params; //2
para = *¶ms; //3
}
所有3个选项都将由Netbeans gdb编译,但gcc表示从非兼容指针类型中分配。
为什么会有这种差异......得到了gcc 4.6.1以及我在gcc中可以做什么来指向** params的值* para
答案 0 :(得分:3)
在所有三种情况下,右侧的类型为const char **
,如果没有强制转换,则无法将其分配给const char *
。
如果你将警告级别调高到足够高,所有编译器都应该警告你。
目前尚不清楚你想做什么;如果你想指向第一个子数组的开头,那么这将起作用:
para = params[0];