네 개의 요소가 있는 배열이 있다고 가정합니다. 그러면 배열 인덱싱은 0에서 3까지가 됩니다. 즉, 인덱스 0에서 3까지의 요소에 액세스할 수 있습니다.
그러나 3보다 큰 인덱스를 사용하면 범위를 벗어난 인덱스로 호출됩니다.
범위를 벗어난 배열 인덱스를 사용하면 컴파일러가 컴파일되고 실행됩니다. 그러나 정확한 결과를 보장할 수는 없습니다.
결과는 확실하지 않을 수 있으며 많은 문제를 일으키기 시작할 것입니다. 따라서 배열 인덱싱을 사용할 때 주의하는 것이 좋습니다.
예시 프로그램
다음은 배열의 범위를 벗어난 인덱스에 대한 C 프로그램입니다. -
#include<stdio.h> int main(void){ int std[4]; int i; std[0] = 100; //valid std[1] = 200; //valid std[2] = 300; //valid std[3] = 400; //valid std[4] = 500; //invalid(out of bounds index) //printing all elements for( i=0; i<5; i++ ) printf("std[%d]: %d\n",i,std[i]); return 0; }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
std[0]: 100 std[1]: 200 std[2]: 300 std[3]: 400 std[4]: 2314
설명
이 프로그램에서 배열 크기는 4이므로 배열 인덱싱은 std[0]에서 std[3]입니다. 그러나 여기에서는 std[4]에 값 500을 할당했습니다.
따라서 프로그램이 성공적으로 컴파일되고 실행됩니다. 그러나 값을 인쇄하는 동안 std[4]의 값은 쓰레기입니다. 500을 할당했고 결과는 2314입니다.