जब आप ऋणात्मक लंबाई की सरणी बनाते हैं तो सी में क्या होता है?नकारात्मक लंबाई की एक सरणी घोषित करना
उदाहरण के लिए:
int n = -35;
int testArray[n];
for(int i = 0; i < 10; i++)
testArray[i]=i+1;
इस कोड को संकलित कर देगा (और -Wall के साथ कोई चेतावनी सक्षम लाता है), और यह आप बिना किसी समस्या के testArray[0]
को असाइन कर सकते लगता है। अतीत को असाइन करना जो या तो एक सेगफॉल्ट या अवैध निर्देश त्रुटि देता है, और सरणी से कुछ भी पढ़ने से कहते हैं, "अपरिपक्व जाल" (मैं उस से परिचित नहीं हूं)। मुझे एहसास है कि यह कुछ हद तक अकादमिक है, और (उम्मीद है) वास्तविक जीवन में कभी नहीं आएगा, लेकिन क्या कोई विशेष तरीका है कि सी मानक ऐसे सरणी का इलाज करने के लिए कहता है, या क्या यह कंपाइलर से कंपाइलर में भिन्न होता है?
'स्टेटमेंट' के अंत में एक अनजान अर्धविराम (';') है, मुझे लगता है ... – Arun
धन्यवाद, मैंने इसे ठीक किया! – jonmorgan