배열 문의 드립니다.
이퓨리한나
2025.04.26
안녕하세요.
배열 관련 해서 문의 드립니다.
int data[2][3];
for(i = 0; i 3; i++){
for(j = 0;j 4; j++){
data[i][j] = j;
printf(data[%d][%d] = %d\n, i, j, data[i][j]);
}
}
배열이 2 * 3 = 6 개만 잡혀야 하는데, gcc 로 컴파일 하면
아래와 같이 3 * 4 = 12 개의 결과가 나옵니다.
data[0][0] = 0data[0][1] = 1data[0][2] = 2data[0][3] = 3data[1][0] = 0data[1][0] = 1data[1][0] = 2data[1][0] = 3data[2][0] = 0data[2][0] = 1data[2][0] = 2data[2][0] = 3
왜 에러가 안 나고 이렇게 되는 걸까요?
아시는 분 답변 부탁드립니다.
-
피어나 2025-04-26
data[2]는 변수 2개를 배열로 선언하겠다는 뜻입니다
-
매1혻적 2025-04-26
아닙니다
-
알찬해 2025-04-26
Memory Overflow에 관한 오류는 프로그램 자체에서 발생합니다.
일반 컴파일러가 잡아주진않습니다.