실행 에러 - free(): invalid size

반응형

현상

프로그램 실행 중 다음과 같은 에러가 발생하며 프로그램이 종료되는 경우가 있습니다.

free(): invalid size
Aborted

 

원인

이는 메모리 관련 에러가 발생했음을 나타냅니다. 

다음 중 하나의 문제일 수 있습니다.

  • 할당되지 않은 메모리 포인터를 해제(free())하고자 하는 경우
  • 이미 해제된 메모리 포인터를 다시 해제하고자 하는 경우

 

위와 같이 코드를 작성하지 않았음에도 이러한 현상이 발생하는 경우, 버퍼 오버플로우가 발생했거나 써서는 안 될 메모리에 무언가를 써서 heap corruption이 발생했을 수 있습니다.

 

해결 방안

디버거 등을 사용하여 에러 발생 시점에 프로그램이 무엇을 하고 있었는지 확인해 봅니다. 해당 시점에서 문제점을 찾지 못할 경우, 그보다 이전 시점 어딘가에서 문제가 발생한 것이며 이를 디버깅하기 위해서는 많은 노력이 필요할 수 있습니다.

 

 

댓글

Designed by JB FACTORY