কম্পিউটার টিউটোরিয়াল

সি/সি++-তে অ্যারে আউট অফ বাউন্ড্স (Out of Bounds) অ্যাক্সেস


জাভা-এর মতো একটি ল্যাঙ্গুয়েজে, যদি অ্যারে বাউন্ডের বাইরে অ্যাক্সেস করা হয়, তবে java.lang.ArrayIndexOutOfBoundsException এক্সসেপশন ঘটে। কিন্তু সি-তে এমন কোনো ফাংশনালিটি নেই এবং অ্যারে বাউন্ডের বাইরে অ্যাক্সেস করলে অনির্দিষ্ট আচরণ (undefined behaviour) ঘটে।

এটি প্রদর্শন করে একটি সি প্রোগ্রাম নিচে দেওয়া হলো।

উদাহরণ

#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 অ্যারেটি সাবস্ক্রিপ্ট ৪ পর্যন্ত মান অ্যাসাইন করা আছে। তাই যখন অ্যারে এলিমেন্টগুলো প্রিন্ট করা হয়, 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]);
  1. সি/সি++ প্রোগ্রামে মার্জ সর্ট ব্যবহার করে অ্যারেতে ইনভারশন কাউন্ট করা

  2. সি/সি++-তে মাল্টিডাইমেনশনাল অ্যারে ইনিশিয়ালাইজেশন (Initialization)

  3. অ্যারে রিভার্স C++-তে

  4. কেন C++-এ অ্যারে আউট-অফ-বাউন্ডস অ্যাক্সেসে এরর দেয় না?