물론 알고있는 사람들은 진작에 알았겠지만...
윈도xp계열에서
void s(char **a){ }
void main(){
char *a=0;
s(&a); //물론, &a -> a로 바꾸면 됨.
}
이런식으로 컴파일하면 될것같지만 된다.
그러나, char **a -> char *a로 바꾸면 안된다.
오류:error C2664: 's' : cannot convert parameter 1 from 'char ** ' to 'char *'
그래서 codepad.org로 테스트를 해보았다.
여기선 오류가 뜨지않는다.
다른곳에서 내용을 훝어보았지만 리눅스를 기반으로 설명하고있었다.
결론: 운영체제에 따라서 ,, 비주얼스튜디오버전에따라서,, 컴파일 하는방식이 틀리다. 그리고 저렇게 해야하는지도 오늘 처음 알았다. 참고로 배열사용할때도 마찬가지이다.
댓글 0