আমি সি প্রোগ্রামিংয়ের একটি অদ্ভুত অভিজ্ঞতা পেয়েছি। এই কোডটি বিবেচনা করুন:
int main(){
int array1[6] = {0, 1, 2, 3, 4, 5};
int array2[6] = {6, 7, 8, 9, 10, 11};
printf("%d\n", array1[-1]);
return 0;
}
আমি যখন এটি সংকলন এবং চালনা করি তখন আমি কোনও ত্রুটি বা সতর্কতা পাই না। আমার প্রভাষক যেমন বলেছিলেন, অ্যারে সূচকটি -1
আরও একটি পরিবর্তনশীল অ্যাক্সেস করে। আমি এখনও বিভ্রান্ত, কেন পৃথিবীতে প্রোগ্রামিং ভাষার এই ক্ষমতা আছে? মানে, নেতিবাচক অ্যারে সূচকগুলিকে কেন অনুমতি দিন?
-1
রেফারিং করা বৃহত্তর অ্যারেতে অ্যারের আগে উপাদানটির উল্লেখ করার জন্য একটি সঠিক বৈধ উপায়। অন্যটি হ'ল যদি সূচকটি অবৈধ হয় তবে প্রোগ্রামটি অবৈধ but তবে বেশিরভাগ বাস্তবায়নে আপনি নীরব খারাপ আচরণ পাবেন, সীমার বাইরে ত্রুটি নয়।