दिलचस्प पोस्ट
सी ++ 0x मोड में लिबसी ++ के साथ रगड़ क्यों नहीं कर सकते हैं इस बढ़ावा :: प्रोग्राम_पोपेंस उदाहरण? फ़ंक्शन का प्रयोग करके दो तिथियों के बीच की तारीखों की एक सूची प्राप्त करें इकाई ढांचा में बल्क डालें प्रदर्शन को सुधारना जर्सी अनुरोध के संदर्भ में एक वस्तु इंजेक्षन कैसे करें? JavaScript के साथ यूआरएल हैश / टुकड़ा पहचानकर्ता को पार्स करना चिकना जीपीएस डेटा c # डेटाटेबल से सीएसवी .NET में संसाधनों का निर्माण और उपयोग कैसे करें Exec () के बाद PHP StdErr PHP विधि chaining? पीएचपी एक्सएमएल कैसे आउटपुट अच्छा प्रारूप सोप क्लाइंट क्लास का उपयोग करके एक PHP SOAP कॉल कैसे करें डिफ़ॉल्ट वैरिएबल वैल्यू सभी आधुनिक ब्राउज़रों में पृष्ठ ज़ूम स्तर कैसे पता लगा सकता है? java.lang.IllegalStateException: इस क्रिया को सवेव इन्स्टेंसस्टेट के बाद नहीं किया जा सकता

सी ++ पुस्तकों में, सरणी बाध्य होना निरंतर अभिव्यक्ति होनी चाहिए, लेकिन निम्नलिखित कोड क्यों काम करता है?

#include <iostream> using namespace std; int main(){ int n=10; int a[n]; for (int i=0; i<n; i++) { a[i]=i+1; cout<<a[i]<<endl; } return 0; } 

मैक के तहत Xcode4 में ठीक काम किया

जैसा कि किताबों में कहा, यह गलत होना चाहिए, क्यों?

इतना उलझन में ~

वेब के समाधान से एकत्रित समाधान "सी ++ पुस्तकों में, सरणी बाध्य होना निरंतर अभिव्यक्ति होनी चाहिए, लेकिन निम्नलिखित कोड क्यों काम करता है?"

यह एएलए C99 फीचर जिसे वीएलए कहा जाता है, कुछ कम्पाइलर भी सी ++ में अनुमति देते हैं। यह स्टैक पर आवंटन है, जैसे कि यह int a[10] साथ होगा int a[10]

यह C99 सुविधा है जो VLA (चर लंबाई सरणी) की अनुमति देता है।

इसे g++ -pedantic साथ संकलित करें, मुझे यकीन है कि संकलन नहीं होगा।