আমি এই জাতীয় সীমা ছাড়িয়ে একটি সি ++ প্রোগ্রামে মান নির্ধারণ করছি:
#include <iostream>
using namespace std;
int main()
{
int array[2];
array[0] = 1;
array[1] = 2;
array[3] = 3;
array[4] = 4;
cout << array[3] << endl;
cout << array[4] << endl;
return 0;
}
প্রোগ্রাম প্রিন্ট 3এবং 4। এটা সম্ভব হবে না। আমি g ++ 4.3.3 ব্যবহার করছি
এখানে কমপাইল এবং রান কমান্ড রয়েছে
$ g++ -W -Wall errorRange.cpp -o errorRange
$ ./errorRange
3
4
কেবলমাত্র অ্যাসাইন করার সময় array[3000]=3000এটি আমাকে আলাদা করার ত্রুটি দেয়।
জিসিসি যদি অ্যারে সীমা পরীক্ষা করে না, তবে আমি কীভাবে নিশ্চিত হতে পারি যে আমার প্রোগ্রামটি সঠিক কিনা, কারণ এটি পরে কিছু গুরুতর সমস্যার কারণ হতে পারে?
আমি উপরের কোডটি প্রতিস্থাপন করেছি
vector<int> vint(2);
vint[0] = 0;
vint[1] = 1;
vint[2] = 2;
vint[5] = 5;
cout << vint[2] << endl;
cout << vint[5] << endl;
এবং এটিও কোনও ত্রুটি তৈরি করে না।
vector করে না ! এটা শুধু ইউবি!