반응형
C 개발 중에 segmentation fault 관련 에러가 발생했다.
원인은 잘못된 메모리 참조 때문에 발생한 것이다.
좀더 자세하게 설명하면
- 어떤 프로그램이 자신이 운영체제로부터 배정 받지 못한 영역(메모리)에 대해 침범하는 것을 운영체제 수준에서 막아주는 것.
- 허용되지 않은 방법으로 메모리에 접근할 때, 허용되지 않은 메모리 영역에 접근할 때 발생해서 사용자가 메모리를 오염시키는 걸 막아주고, 디버깅하기 힘든 메모리 버그를 알려주는 역할.
등의 설명이다.
발생할수 있는 의심되는 원인들은 아래와 같다.
- null 값을 가리키는 포인터에 접근할 경우
- 할당 받은 메모리 공간을 넘은 곳을 건드린 경우
- 더 이상 존재하지 않는 메모리 영역을 가리킬 경우
- read-only 표시 메모리 영역에 쓰려고 할 경우
결국 세그먼트 오류가 발생하면 참조가 잘못되었을 확률이 높아 포인터 쪽을 집중해서 확인하면 될것이다.
반응형
댓글