인터넷에서 찾은 예제 코드를 분석하고 있는데 도무지 이해를 할 수 없어서 질문합니다.
먼저 main 함수에서 선언, 초기화된 변수들은 다음과 같습니다.
int N;
int *col;
N = 4;
col = (int *)malloc(N * sizeof(int));
여기서 보면 일차원 포인터 col에 대해 접근 가능한 인덱스는 0~3으로 총 4개 아닌가요?
제가 이걸 왜 물어보냐 이유는 다른 함수에서 col[4]에 접근했기 때문입니다.
i = 3;
col[i+1] = 2;
이 코드를 보면 col[4] = 2;로 볼 수 있는건데
이 코드가 정상적으로 수행되는게 이해가 안가서 질문합니다...
N이 4이고 N만큼 할당해줬기 때문에 col[3]까지밖에 접근할 수 없는거 아닌가요?