साथ मैं निम्नलिखित कोड है:सी ++ पूर्णांक एक [n] जी में ++ काम कर रहा है, लेकिन नहीं VS2008
...
int n;
cin >> n;
int numbers[n];
...
यह पर जी का उपयोग कर मैक NetBeans के साथ संकलित ++ (मुझे लगता है कि) और उस पर VS2008 का उपयोग कर संकलन नहीं किया विंडोज। यह हर कंपाइलर के साथ काम करना इतना मुश्किल क्यों है? सरणी का आकार इसे आवंटित करने से पहले जाना जाता है।
संपादित करें: मुझे std::vector
पता है। असल में यह होमवर्क असाइनमेंट का हिस्सा था और मैंने इसे मैक पर काम पर शुरू किया, फिर घर आया और आश्चर्यचकित हुआ कि यह वीएस -2008 पर काम नहीं करता था। सारे सवालों के जवाब देने के लिए धन्यवाद। लेकिन मुझे अभी भी यह तार्किक लगता है कि यदि संकलक alloc(123)
जैसे कुछ कोड उत्पन्न कर सकता है, जहां मान 123 हार्डकोड किया गया है, तो यह alloc(n)
जैसे कुछ उत्पन्न क्यों नहीं कर सकता है, जहां आपको int n
या कुछ मेमोरी पते से n
मिलता है। डिफ़ॉल्ट रूप से ऐसा कुछ करने की अनुमति देने के लिए यह और अधिक तार्किक लगता है।
उस –
@RC के लिए कुछ सीपीपी असली सामग्री जैसे 'std :: vector' का उपयोग क्यों न करें: यह एक अच्छा जवाब है - इसे वास्तविक बनाएं! –
@ ड्रू: किया गया;) धन्यवाद –