অ্যারে হলো ফিক্সড সাইজ সিকোয়েনশিয়াল কালেকশন যা একই টাইপের উপাদান ধারণ করে।
অ্যারের সীমাবদ্ধতা
- হোমোজিনাস (Homogeneous): ইন্টিজার অ্যারেতে শুধু ইন্টিজার, ফ্লোট অ্যারেতে শুধু ফ্লোট রাখা যায়। দুটি ডেটা টাইপ একসাথে রাখা যায় না।
- ফিক্সড সাইজ: ডিক্লেয়ারেশনের সময় সাইজ নির্দিষ্ট করতে হয় এবং সেটা কনস্ট্যান্ট হতে হবে। ফলে মেমরির অভাব বা অপচয় হয়।
- শিফটিং প্রয়োজন: উপাদান ইনসার্ট বা ডিলিট করলে শিফটিং করতে হয়।
- বাউন্ডারি চেক নেই: সি ভাষায় অ্যারে বাউন্ডারি চেক করে না। সাইজ ছাড়িয়ে ডেটা লিখলে অনপ্রিডিক্টেবল ফলাফল বা প্রোগ্রাম হ্যাং করতে পারে।
- এরর মেসেজ নেই: বাউন্ডের বাইরে যাওয়ার জন্য কোনো ওয়ার্নিং থাকে না।
উদাহরণ অনিচ্ছাকৃত ফলাফল:
int a[10], i;
for(i=0; i<=20; i++)
a[i] = i; // অ্যারে বাউন্ড ছাড়িয়ে লেখা হচ্ছে
উদাহরণ প্রোগ্রাম: দুটি অ্যারের যোগফল
#include<stdio.h>
void main() {
int array1[5], array2[5], sum[5], i;
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 : 2 3 1 2 3 Enter the values of array2 : 4 5 3 2 1 Elements in the sum of array1 and array2 are: 6 8 4 4 4