C++ বাউন্ডস চেকিং (bounds checking) করে না। Java, Python-এর মতো ল্যাঙ্গুয়েজগুলো রানটাইমে চেক করে এক্সসেপশন থ্রো করে।
কারণ: C++-র ডিজাইন ফিলোসফি: "C-এর চেয়ে ধীর হয় না"। C বাউন্ড চেক করে না, তাই C++-ও করে না। এটি পারফরম্যান্সের জন্য।
ফলাফল: আউট-অফ-বাউন্ডস অ্যাক্সেস Undefined Behaviour (UB)। যেকোনো কিছু ঘটতে পারে:
- প্রোগ্রাম ক্র্যাশ (সেগফল্ট)
- সাইলেন্টলি ভুল মান পড়া/লেখা
- অন্য ভেরিয়েবল করাপ্ট করা
- দেখতে ঠিকঠাক চলতে পারে (সবচেয়ে বিপজ্জনক)
সুরক্ষা: std::vector::at() ব্যবহার করুন (রানটাইম চেক করে), std::array, বা বাউন্ড চেকিং সানিটাইজার (ASan, -fsanitize=address) কম্পাইল টাইমে/রানটাইমে সক্রিয় করুন।