실행 에러 - free(): invalid size
- 프로그래밍/C 프로그래밍
- 2021. 3. 24.
반응형
현상
프로그램 실행 중 다음과 같은 에러가 발생하며 프로그램이 종료되는 경우가 있습니다.
free(): invalid size
Aborted
원인
이는 메모리 관련 에러가 발생했음을 나타냅니다.
다음 중 하나의 문제일 수 있습니다.
- 할당되지 않은 메모리 포인터를 해제(free())하고자 하는 경우
- 이미 해제된 메모리 포인터를 다시 해제하고자 하는 경우
위와 같이 코드를 작성하지 않았음에도 이러한 현상이 발생하는 경우, 버퍼 오버플로우가 발생했거나 써서는 안 될 메모리에 무언가를 써서 heap corruption이 발생했을 수 있습니다.
해결 방안
디버거 등을 사용하여 에러 발생 시점에 프로그램이 무엇을 하고 있었는지 확인해 봅니다. 해당 시점에서 문제점을 찾지 못할 경우, 그보다 이전 시점 어딘가에서 문제가 발생한 것이며 이를 디버깅하기 위해서는 많은 노력이 필요할 수 있습니다.
'프로그래밍 > C 프로그래밍' 카테고리의 다른 글
__attribute__((visibility("default"))) (0) | 2022.04.10 |
---|---|
빌드 에러 - undefined reference to mp_prime_is_prime (0) | 2021.03.25 |
빌드 에러 - undefined reference to log10f (0) | 2021.03.22 |
Object Identifier asn.1 인코딩 방법 (0) | 2021.02.11 |
C 프로그래밍 : 두 GPS 좌표간 목적지 방위각(bearing) 계산하기 (0) | 2020.04.29 |
C 프로그래밍 : 두 GPS 좌표간 거리(distance) 구하기 (3) | 2020.04.29 |
C 프로그래밍 : 네트워크 인터페이스 MAC 주소 문자열을 바이트열로 변환 (2) | 2020.02.13 |
C 프로그래밍 : MAC 주소 출력 매크로 - MAC 주소 출력문을 간단하게. (0) | 2020.02.12 |