qkrclrl701   4년 전

stl sort를 이용하기 위해서 words array를 char *의 일차원 array로 선언하고, 각 string을 저장하기 위한 메모리를 malloc으로 할당해주었습니다.

단어 길이가 50 이하이므로 char *에 51*sizeof(char) = 51만큼의 메모리를 할당하였구요.

다른 질문들을 확인해 보았는데, 런타임 에러의 경우에는 대부분 51만큼의 메모리를 할당하지 않아서 그렇더라구요.. 

어떤 부분에서 런타임 에러가 발생하는 것 일까요??

djm03178   4년 전

19번째 줄을 return 0으로 바꿔주면 됩니다. return 1 이라는 것은 "a가 b보다 앞선다"는 의미를 내포하는데, 그렇다면 실제로 a == b인 경우에 cmp(a, b)도 1이고 cmp(b, a)도 1이라는 모순된 결과가 나오기 때문에 sort 함수가 당황하게 됩니다.

hu8232   3년 전

감샇합니다 덕분에 저도 풀었어요

그런데 0으로 해도   cmp(a, b)도 0이고 cmp(b, a)도 0이 되니까 모순되는건 마찬가지 아닌가요??

djm03178   3년 전

a가 b보다 작지 않고, b가 a보다 작지 않다는 건 모순이 아니라 둘이 같음을 의미합니다.

hu8232   3년 전

아 생각해보니 그렇네요 감사합니다

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