Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

배열의 범위를 벗어난 인덱스는 무엇입니까 - C 언어?

<시간/>

네 개의 요소가 있는 배열이 있다고 가정합니다. 그러면 배열 인덱싱은 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입니다.