yumkoo   2년 전

계속 런타임 오류가 뜨는데 왜 뜨는지 정말 모르겠습니다 ㅠ

euphoric_n   2년 전

저장되는 문자열의 범위가 arry 배열의 범위를 초과하기 때문입니다.

의도하신 프로그램의 동작이 여러개의 문자열을 아래와 같이 저장하는 것으로 보입니다.

input

3

OXOO

XOXX

XXXO

일 때,

arry[1000] = { O,X,O,O, '\0', X,O,X,X, '\0' ,X,X,X,O, '\0', ... }

이 문제는 테스트 케이스 갯수 n의 범위 제한이 없습니다. 길이가 80인 문자열이 수백개 입력될 수도 있습니다.

그리고 배열 arry의 크기를 1000으로 지정해주셨기 때문에 sizeof(arry) / sizeof(char)는 1000입니다.

두번째 문자열부터는 arry의 범위를 벗어난 위치에 저장됩니다. C언어에서 문자열의 길이를 알고싶다면 strlen 함수를 사용하시기 바랍니다.

또, 이 문제에서 한번 결과를 출력하고 나면 더 이상 기존 값은 필요가 없기 때문에 arry 배열에 처음부터 덮어써도 문제가 없습니다.

yumkoo   2년 전

헉..배열을 덮어써도 문제가 없다는것을 몰랐네요... 감사합니다 방금 해결 했습니다!!!!!

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