ধরুন আপনার চারটি উপাদান সহ একটি অ্যারে আছে। তারপর, একটি অ্যারে ইন্ডেক্সিং 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।