작성
·
292
1
교수님 강의를 보다가 궁금한 점이 있어 질문드립니다
25분쯤에 int count = scanf("%6s %6s",str1,str2);
이 부분이 런타임에러가 생겨났는데 그 이유가 무엇인가요?
배열의 크기가 6이니깐 6글자를 입력해도 들어갈꺼라 생각했는데 에러가 일어나서 그 이유가 궁금합니다!
답변 1
2
char str1[6], str2[6];
질문하신 영상에서 위의 코드와 같이 크기가 6인 char형 배열을 선언했으므로 str1과 str2에는 문자를 6개만 저장할 수 있습니다. 여기서 문자열 맨 뒤에 붙는 null character(널 문자)까지 포함하면 실제로 저장할 수 있는 문자는 5개가 됩니다.
따라서 입력할 때 문자열의 개수가 (배열의 크기-1)을 넘지 않도록 하시고, 좀 더 길게 입력하고 싶다면 배열의 크기를 크게 만드시면 됩니다.