Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การเข้าถึงอาร์เรย์นอกขอบเขตใน C/C++


ในภาษาเช่น Java มีข้อยกเว้น เช่น java.lang.ArrayIndexOutOfBoundsException อาจเกิดขึ้นหากมีการเข้าถึงอาร์เรย์นอกขอบเขต แต่ไม่มีฟังก์ชันดังกล่าวใน C และการทำงานที่ไม่ได้กำหนดอาจเกิดขึ้นได้หากมีการเข้าถึงอาร์เรย์นอกขอบเขต

โปรแกรมที่แสดงสิ่งนี้ในภาษา C มีดังต่อไปนี้

ตัวอย่าง

#include <stdio.h>
int main() {
   int arr[] = {1,2,3,4,5};
   printf("The elements of array : ");
   for(int i = 0; i<6; i++)
   printf(" %d",arr[i]);
   return 0;
}

ผลลัพธ์

ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้

The elements of array : 1 2 3 4 5 32765

ตอนนี้เรามาทำความเข้าใจโปรแกรมข้างต้นกัน

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

int arr[] = {1,2,3,4,5};
printf("The elements of array : ");
for(int i = 0; i<6; i++)
printf(" %d",arr[i]);