저는 멀록으로 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를 분명 한번만 썼는데 왜그런건가요?
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를 안써준 상태에서 메모리 누수 검사를 하면
누수가 없다고 나옵니다.