다음 함수 선언은 gcc에서 허용하지만 g ++에서는 허용되지 않습니다. g의 ++에 의해 주어진알 수없는 배열의 포인터?
void do_something(char (*)[]);
오류 :
error: parameter '<anonymous>' includes pointer to array of unknown bound 'char []'
나는 C에서, 매개 변수가 숯불로 변환하고 있다고 생각 ** GCC 잘 그것을 받아들이는 이유입니다.
g ++이 어떻게 든이 함수를 허용 할 수 있습니까? http://ideone.com/yqvqdB :
감사 :
예를 참조하십시오!
실제로 작동하려고하는 'do_something'은 무엇입니까? 'char **'또는'char *'를 사용하려고합니까? –
장기적으로 사용할 컴파일러에 따라 다릅니 까? 아니면 둘 다 사용 하시겠습니까? – Sash
컴파일하는 정확한 코드가 맞습니까? 실제로'char ** '와 동등해야하고, g ++은 그것을 받아들입니다 : http://ideone.com/njdwyc. 배열에 대한 포인터는'char (*) []'처럼 보일 것입니다. –