할당 된 메모리 넘는 공간에 접근할때, 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] 을 화면 출력함으로써 문제가 발생하였습니다.
MAC 에서 gcc 설치하기. (0) | 2013.08.27 |
---|
댓글 영역