मान लीजिए कि आपके पास चार तत्वों के साथ एक सरणी है। फिर, एक सरणी अनुक्रमण 0 से 3 तक होगा, यानी, हम इंडेक्स 0 से 3 तक के तत्वों तक पहुंच सकते हैं।
लेकिन, अगर हम इंडेक्स का उपयोग करते हैं जो कि 3 से अधिक है, तो इसे इंडेक्स की सीमा से बाहर कहा जाएगा।
यदि, हम एक सरणी अनुक्रमणिका का उपयोग करते हैं जो सीमा से बाहर है, तो संकलक संकलित करेगा और यहां तक कि चलेगा। लेकिन, सही परिणाम की कोई गारंटी नहीं है।
परिणाम निश्चित नहीं हो सकता है और यह कई समस्याएं पैदा करना शुरू कर देगा। इसलिए, सरणी अनुक्रमण का उपयोग करते समय सावधान रहने की सलाह दी जाती है।
उदाहरण कार्यक्रम
एक सरणी में सीमा से बाहर एक इंडेक्स के लिए सी प्रोग्राम निम्नलिखित है -
#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] तक होगी। लेकिन, यहां, हमने 500 का मान एसटीडी [4] को सौंपा है।
इसलिए, प्रोग्राम को सफलतापूर्वक संकलित और निष्पादित किया जाता है। लेकिन, मूल्य प्रिंट करते समय, एसटीडी [4] का मूल्य कचरा है। हमने इसमें 500 दिए हैं और परिणाम 2314 है।