상세 컨텐츠

본문 제목

[C언어] segmentation fault 에러(error) 발생 이유,

Programing/C

by Array 2020. 5. 20. 12:54

본문

할당 된 메모리 넘는 공간에 접근할때, Null로 설정된 영역을 접근할 경우 발생이 됩니다.

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int col,row;
  col =2;
  row =3;

  int **numPtr = malloc(sizeof(int) * col);
  for(int i=0; i < col; i++){
    numPtr[i] = malloc(sizeof(int) * row);
  }

  numPtr[0][0] = 10;
  numPtr[2][3] = 20;

  printf("%d, %d",numPtr[0][0],numPtr[2][3]);
  
  free(numPtr);

  return 0;
}

이 예시는 할당 된 메모리 공간 이상을 접근하여 segmentation fault 에러가 발생하였습니다.

 

얼핏 보기엔 간단한 오타 에러이지만, 포인트에 할당된 메모리 2차원 배열을 호출 과정에서

 

numPtr[1][2] 까지만 사용이 가능한 배열을 numPtr[2][3] 을 화면 출력함으로써 문제가 발생하였습니다.

 

 

 

'Programing > C' 카테고리의 다른 글

MAC 에서 gcc 설치하기.  (0) 2013.08.27

관련글 더보기

댓글 영역