smile689   3년 전

코딩도장 44.7번 문제를 풀고있습니다.

답은 정답처리가 나오긴했는데,

저는 멀록으로 1000바이트를 할당을 해줬고, 당연히 멀록을 했으면 free(str)을 리턴0 위에 해줘야한다고 생각해서 써줬는데,

프리를 해주면

a.out(19967,0x104527d40) malloc: *** error for object 0x138e06813: pointer being freed was not allocated
a.out(19967,0x104527d40) malloc: *** set a breakpoint in malloc_error_break to debug

이런 오류가 발생합니다.

검색해보니 두번 free를 해주면 발생하는 오류라고 하는데, free를 분명 한번만 썼는데 왜그런건가요?

반대로 free를 안써준 상태에서 메모리 누수 검사를 하면

누수가 없다고 나옵니다.

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