leeym95   4년 전

이게 안되는 이유가 뭐죠....??

gallopsys   4년 전

char *str;에서 str은 포인터 형입니다. 그러므로 sizeof(str)을 수행 시, 포인터 자료형의 크기를 불러오므로 항상 4바이트가 나옵니다(32비트 기준). 문자열의 길이가 아니라요.

그리고 단순히 str[i]에서 공백이 검출되는 형식으로 하시면 다음과 같은 케이스에서 오답을 출력합니다.

# Testcase
            a    b cd
출력: 18 / 정답: 3

덤으로 malloc 함수를 불러올 때 sizeof(str)*1000001)이라고 하면, 항상 4000004의 크기만큼 할당하게 되므로 주어진 조건보다 훨씬 많이 할당하게 되므로, 이 또한 메모리 낭비입니다. sizeof(str) 대신에 sizeof(char)를 사용해 주십시오.

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