C ++ में, वैरिएबल लंबाई सरणियाँ कानूनी नहीं हैं। G ++ इसे "एक्सटेंशन" के रूप में अनुमति देता है (क्योंकि C इसे अनुमति देता है), इसलिए G ++ में ( -pedantic
C ++ मानक का पालन किए बिना ), आप कर सकते हैं:
int n = 10;
double a[n];
यदि आप "वैरिएबल लेंथ एरे" चाहते हैं (C ++ में "डायनामिक साइज ऐरे" कहा जाता है, क्योंकि उचित वैरिएबल एरे को अनुमति नहीं दी जाती है), तो आपको या तो डायमेंशनली खुद को मेमोरी आवंटित करनी होगी:
int n = 10;
double* a = new double[n];
या, बेहतर अभी तक, एक मानक कंटेनर का उपयोग करें:
int n = 10;
std::vector<double> a(n);
आप अभी भी एक उचित सरणी चाहते हैं, आप एक का उपयोग कर सकते निरंतर , नहीं एक चर जब यह बनाने,:
const int n = 10;
double a[n];
इसी तरह, यदि आप C ++ 11 में एक फ़ंक्शन से आकार प्राप्त करना चाहते हैं, तो आप एक का उपयोग कर सकते हैं constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];