LECTURE 문제 런타임 오류 확인 부탁드립니다. cisfine 1) 에러내용 : RTE (SIGSEGV: segmentation fault, probably incorrect memory access or stack overflow) 2) 질문내용 : 잘못된 메모리 접근이나 스택 오버플로우가 발생했다고 하는데, 아마도 배열을 선언하는데 있어 잘못된 방법으로 선언한 것 같습니다. (char text[20][1004];) 보다 나은 선언방법이나, 잘못 접근한 배열 인덱스가 있을까요? 확인해주시면 감사하겠습니다. 3) 사용 코드 : ~~~ c++ #include int main(){ int T; int i, j, k, count; char text[20][1004]; char temp[2]; int count_text[20]; scanf("%d",&T); for(k=0;k<T;k++) scanf("%s", &text[k][0]); for(k=0;k<T;k++){ i=0; j=0; while(text[k][i]!='\0'){ count_text[k] = i++; } } for(k=0;k<T;k++){ for(count=0; count<count_text[k]; count++){ i=0; while((text[k][i+4] != '\0')){ if(text[k][i+2]!= '\0'){ if( text[k][i+0] > text[k][i+2] ){ temp[0] = text[k][i+0]; temp[1] = text[k][i+1]; text[k][i+0] = text[k][i+2]; text[k][i+1] = text[k][i+3]; text[k][i+2] = temp[0]; text[k][i+3] = temp[1]; } } i=i+2; } } } for(k=0;k<T;k++){ for(count=0; count<count_text[k]; count++){ i=0; while((text[k][i+4] != '\0')){ if(text[k][i+3]!= '\0'){ if( text[k][i+0] == text[k][i+2] ){ if( text[k][i+1] > text[k][i+3] ){ temp[0] = text[k][i+0]; temp[1] = text[k][i+1]; text[k][i+0] = text[k][i+2]; text[k][i+1] = text[k][i+3]; text[k][i+2] = temp[0]; text[k][i+3] = temp[1]; } } } i=i+2; } } } for(k=0;k<T;k++){ j=0; while( (text[k][j] != '\0') ){ printf("%c", text[k][j++]); printf("%c", text[k][j++]); } printf("\n"); } return 0; } 9년 전
3개의 댓글이 있습니다. seo8387 your array(text) should be inputed only 20 times, but quiz's trial is much more. so you got overflow. 9년 전 link Corea 테스트 케이스의 수인 T의 제한이 명시되어 있지 않습니다. 문제를 풀이하실 때, 한 케이스의 입력을 받으신 다음 해당 입력에 대한 출력을 매 번 하셔도 됩니다. [[알고스팟 온라인 저지/첫 번째 문제 풀기]]의 테스트 케이스 부분을 읽어보시면 도움이 될 것 같습니다. 9년 전 link cisfine 답변 모두 감사드립니다. 출력을 한꺼번에 해야하는 것으로 알고있었네요. 감사합니다. 좋은 하루 보내세요~ 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
cisfine
1) 에러내용 :
RTE (SIGSEGV: segmentation fault, probably incorrect memory access or stack overflow)
2) 질문내용 :
잘못된 메모리 접근이나 스택 오버플로우가 발생했다고 하는데,
아마도 배열을 선언하는데 있어 잘못된 방법으로 선언한 것 같습니다.
(char text[20][1004];)
보다 나은 선언방법이나, 잘못 접근한 배열 인덱스가 있을까요?
확인해주시면 감사하겠습니다.
3) 사용 코드 :
~~~ c++
#include
int main(){
return 0;
}
9년 전