मैं एक पूर्णांक सरणीस्टैक पर सरणी आकार निर्दिष्ट करने के लिए int से const int को कैसे परिवर्तित करें?
#include<iostream>
using namespace std;
int main(){
int n1 = 10;
const int N = const_cast<const int&>(n1);
//const int N = 10;
cout<<" N="<<N<<endl;
int foo[N];
return 0;
}
हालांकि करने के लिए ढेर पर एक निश्चित आकार आवंटित करने के लिए कोशिश कर रहा हूँ, इस अंतिम पंक्ति है, जहां मैं N
उपयोग कर रहा हूँ एक निश्चित
error C2057: expected constant expression
परिभाषित करने के लिए पर एक त्रुटि देता है।
हालांकि, अगर मैं N
को const int N = 10
के रूप में परिभाषित करता हूं, तो कोड ठीक से संकलित करता है। const int
के रूप में इसे ट्राट करने के लिए मुझे n1
टाइपकास्ट कैसे करना चाहिए?
मैंने कोशिश की:const int N = const_cast<const int>(n1)
लेकिन इससे त्रुटि मिलती है।
संपादित करें: मैं इसे संकलित करने के लिए एमएस वीसी ++ 2008 का उपयोग कर रहा हूं ... g ++ के साथ यह ठीक संकलित करता है।
बस एक और विस्तार जोड़ने के लिए: जीसीसी एक विस्तार के रूप में यह संकलित - वास्तव में, यह अन्य भाव भी है कि के रूप में नहीं कर रहे हैं अनुमति देता है अनुरूपता के करीब, जैसे 'int x (int a) {int b [a]; } ' –
आह, धन्यवाद, @ जेरीकॉफिन। जब मैंने पोस्ट किया तो मैंने संपादन को नहीं देखा। –