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를 붙였습니다.)
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
s1[i][j]
가(char*)
, 캐릭터포인터이기 때문입니다.
댓글 입력