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

ข้อจำกัดของอาร์เรย์ในภาษา C คืออะไร?


อาร์เรย์เป็นโครงสร้างข้อมูลประเภทหนึ่งที่สามารถจัดเก็บคอลเล็กชันแบบต่อเนื่องที่มีขนาดคงที่ขององค์ประกอบประเภทเดียวกันได้

อาร์เรย์ใช้เพื่อจัดเก็บชุดข้อมูล แต่มักจะมีประโยชน์มากกว่าที่จะคิดว่าอาร์เรย์เป็นชุดของตัวแปรประเภทเดียวกัน

ข้อจำกัด

ข้อจำกัดของอาร์เรย์ได้อธิบายไว้ด้านล่าง -

  • อาร์เรย์ที่ก่อตัวขึ้นจะเป็นเนื้อเดียวกัน กล่าวคือในอาร์เรย์จำนวนเต็มสามารถเก็บค่าจำนวนเต็มได้เท่านั้นในขณะที่อาร์เรย์แบบลอยมีเพียงค่าลอยตัวและอาร์เรย์อักขระเท่านั้นที่สามารถมีได้เฉพาะอักขระ ดังนั้น ไม่มีอาร์เรย์ใดที่สามารถมีค่าของข้อมูลสองประเภทได้

  • ขณะประกาศอาร์เรย์ ขนาดการส่งผ่านของอาร์เรย์เป็นข้อบังคับ และขนาดต้องเป็นค่าคงที่ ดังนั้นจึงมีทั้งความจำเสื่อมหรือความจำเสื่อม

  • จำเป็นต้องมีการเลื่อนเพื่อแทรกหรือลบองค์ประกอบในอาร์เรย์

  • อาร์เรย์ไม่ตรวจสอบขอบเขต:ในภาษา C เราไม่สามารถตรวจสอบได้ว่าค่าที่ป้อนในอาร์เรย์เกินขนาดของอาร์เรย์นั้นหรือไม่

  • ข้อมูลที่ป้อนด้วยตัวห้อย เกินขนาดอาร์เรย์ และจะถูกวางไว้นอกอาร์เรย์ โดยทั่วไปแล้วจะอยู่ด้านบนของข้อมูลหรือตัวโปรแกรมเอง

  • สิ่งนี้จะนำไปสู่ผลลัพธ์ที่คาดเดาไม่ได้อย่างน้อยที่สุด นอกจากนี้ จะไม่มีข้อความแสดงข้อผิดพลาดเพื่อเตือนโปรแกรมเมอร์ให้เกินขนาดอาร์เรย์ ในบางกรณี โปรแกรมอาจค้าง

ดังนั้น โปรแกรมต่อไปนี้สามารถให้ผลลัพธ์ที่ไม่ต้องการได้ -

int a[10],i;
for(i=0;i<=20;i++)
a[i]=i;

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C เพื่อแสดงผลรวมของสองอาร์เรย์ -

#include<stdio.h>
void main(){
   //Declaring array with compile time initialization//
   int array1[5],array2[5],sum[5];
   //Declaring variables//
   int i;
   //Printing O/p using for loop//
   printf("Enter the values of array1 :\n");
   for(i=0;i<5;i++){
      printf("array1[%d] : \n",i);
      scanf("%d",&array1[i]);
   }
   printf("Enter the values of array2 :\n");
   for(i=0;i<5;i++){
      printf("array2[%d] :\n",i);
      scanf("%d",&array2[i]);
   }
   printf("Elements in the sum of array1 and array2 are:\n ");
   for(i=0;i<5;i++){
      sum[i]=array1[i]+array2[i];
      printf("%d ",sum[i]);
   }
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Enter the values of array1 :
array1[0] :2
array1[1] :3
array1[2] :1
array1[3] :2
array1[4] :3
Enter the values of array2 :
array2[0] :4
array2[1] :5
array2[2] :3
array2[3] :2
array2[4] :1
Elements in the sum of array1 and array2 are: 6 8 4 4 4