C언어를 이용하여 사전을 만들려고 하는데 아스키코드값이 에러가 납니다

조회수 523회

안녕하세요. c언어 입문자입니다.

    const char *s1[3][2]={{"A", "Apple"}, {"B", "Banana"}, {"C", "Cake"}};

    printf("%d", s1[0][0]);

    return 0;

이와 같은 2차원 배열에서, 특정 값을 출력하려고 하는데요. 위 코드를 보시다시피 2차원 배열의 (0,0)에 위치한 A의 아스키코드값을 출력하려고 했습니다. 하지만 65가 아니라 108765, 4196288 처럼 전혀 다른 값이 나오고 있네요... 심지어 값이 매번 바뀝니다.

이곳저곳을 찾아봤지만 도저히 왜 이런 상황이 나온 건지 모르겠어서 여쭙고 싶습니다... 조금만 도와주시면 정말 감사하겠습니다

(+ char s1으로 배열을 생성하면 오버플로우라고 뜨길래 구글에서 검색한 오류 해결법으로 char s1 앞에 const를 붙였습니다.)

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • printf("%d", *s1[0][1]); ohsangyun 2020.6.24 10:53

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)