指向未知数组的指针?

gcc接受以下函数声明,但g ++不接受。

void do_something(char (*)[]); 

g ++给出的错误是:

 error: parameter '' includes pointer to array of unknown bound 'char []' 

我相信在C中,参数转换为char **,这就是gcc接受它的原因。

我能以某种方式让g ++接受这个function吗?

参见示例: http : //ideone.com/yqvqdB 🙂

谢谢!

GNU GCC编译器使用非标准编译器来编译程序。 添加此标志-std=c99-std=iso9899:1999将程序编译为标准输入,您将收到错误消息。

在标准中,这将始终被接受为指向数组的指针,因此您必须提供数组的长度,因为它是指针arithmitics所需的。