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] แต่ในที่นี้ เราได้กำหนดค่า 500 ให้กับ std[4]

ดังนั้นโปรแกรมจึงถูกคอมไพล์และดำเนินการได้สำเร็จ แต่ในขณะที่พิมพ์ค่า ค่าของ std[4] กลับกลายเป็นขยะ เราได้กำหนดไว้ 500 รายการและผลลัพธ์คือ 2314