정의

세그먼테이션 오류는 프로그램이 접근 권한이 없는 메모리 영역에 접근하려고 할 때 운영체제가 강제로 실행을 중단시키는 오류이다.
주로 C, C++ 같은 저수준 언어에서 포인터 사용 시 발생한다.

주요 원인

원인 설명
잘못된 포인터 참조 NULL 또는 초기화되지 않은 포인터 접근
배열 범위 초과 선언된 범위를 넘어선 인덱스 접근
해제된 메모리 접근 free/delete 이후 해당 메모리 참조
스택 오버플로우 재귀 호출 무한 반복 등으로 스택 영역 초과
읽기 전용 영역 쓰기 상수 문자열 등 읽기 전용 메모리 변경 시도
 

대응 방법

  • 포인터 초기화 및 유효성 검사
  • 배열 인덱스 범위 점검
  • 메모리 할당·해제 관리 철저
  • 디버거(gdb 등) 활용하여 문제 지점 추적

+ Recent posts