সি ++ এ, পরিবর্তনশীল দৈর্ঘ্যের অ্যারেগুলি বৈধ নয়। জি ++ এটিকে একটি "এক্সটেনশন" হিসাবে অনুমতি দেয় (কারণ সি এটি অনুমতি দেয়), তাই জি ++ এ ( -pedantic
সি ++ মান অনুসরণ না করে) আপনি এটি করতে পারেন:
int n = 10;
double a[n];
আপনি যদি একটি "ভেরিয়েবল দৈর্ঘ্যের অ্যারে" চান (সি ++ এর মধ্যে আরও ভালভাবে "ডায়নামিক আকারের অ্যারে" বলা হয়, যেহেতু যথাযথ ভেরিয়েবল দৈর্ঘ্যের অ্যারে অনুমোদিত নয়), আপনাকে হয় গতিশীলভাবে মেমরি নিজেই বরাদ্দ করতে হবে:
int n = 10;
double* a = new double[n];
অথবা, আরও ভাল, একটি স্ট্যান্ডার্ড ধারক ব্যবহার করুন:
int n = 10;
std::vector<double> a(n);
আপনি যদি এখনও কোনও সঠিক অ্যারে চান তবে এটি তৈরি করার সময় আপনি একটি ধ্রুবক ব্যবহার করতে পারেন , পরিবর্তনশীল নয়:
const int n = 10;
double a[n];
একইভাবে, আপনি যদি সি ++ 11 এ কোনও ফাংশন থেকে আকার পেতে চান তবে আপনি এটি ব্যবহার করতে পারেন constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];