2010-06-21 6 views
2

gcc에서 다음 오류가 발생합니다.const char 변환 오류

invalid conversion from ‘char**’ to ‘const char**’ 

이 코드를 사용하십시오.

void foo(const int &argc, const char **argv); 

int main(int argc, char *argv[]) 
{ 
    foo(argc, argv);                
} 

왜 그렇습니까?

답변

8

함수 매개 변수 목록에 사용 된 경우 char *argv[] 선언은 char **argv 선언과 동일합니다. 이러한 이유로 argvfoo에 전달할 때 실제로 argvchar ** 유형에서 const char ** 유형으로 변환하려고 시도하고 있습니다. 이것은 불법입니다. 불법적 인 이유는 FAQ http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17을 읽어보십시오.

+0

+1 유용한 링크 – Dacav

관련 문제