womiki   3년 전

궁금한게 있습니다.

프로그램에서는 돌아가는데 제출하면 컴파일 에러라고 떠서 코드의 card[N]을 --> card[101]로 변경했더니 되더군요.

혹시 이유가 있을가요??

조언해주시는 모든 분들 감사합니다!

djm03178   3년 전

코드는 항상 전체를 올려주셔야 다른 사람들도 직접 복사해서 테스트 해볼 수 있습니다.

그리고 지금처럼 맞은 코드와 틀린 코드를 적당히 섞어서 올리시면 정말 100% 정확하게 그렇게 적었는지도 알 수가 없습니다. card[N] = {0};이 아니라, int card[N] = {0};이라고 쓰셨는데 올려주신 코드만으로는 int를 앞에 썼는지 여부를 알 수가 없습니다.

컴파일 에러는 "컴파일 에러"라고 쓰인 곳을 클릭하면 에러 메시지를 볼 수 있습니다. 들어가 보시면 "variable-sized object may not be initialized"라고 합니다. 해석하면 가변 길이 배열은 초기화할 수 없다는 뜻이고, 말 그대로 = {0} 을 쓰면 안 된다는 뜻입니다.

womiki   3년 전

전체코드를 안올려서 죄송합니다..ㅠㅠ

컴파일에러를 볼수 있었네요. 감사합니다!!

가변 길이 배열이 문제였던 것 같네요.. 찾아보니 저렇게 쓰는게 권장되지 않다고 하네요.

앞으로는 malloc같은 것으로 사용하겠습니다!

댓글 감사합니다!!

(혹시 몰라서 추가로 전체코드 올려놓을게요!)

댓글을 작성하려면 로그인해야 합니다.