Dalam C ++, array panjang variabel tidak legal. G ++ mengizinkan ini sebagai "ekstensi" (karena C mengizinkannya), jadi di G ++ (tanpa harus -pedantic
mengikuti standar C ++), Anda dapat melakukan:
int n = 10;
double a[n];
Jika Anda menginginkan "larik panjang variabel" (lebih baik disebut "larik berukuran dinamis" dalam C ++, karena larik panjang variabel yang sesuai tidak diizinkan), Anda juga harus mengalokasikan memori sendiri secara dinamis:
int n = 10;
double* a = new double[n];
Atau, lebih baik lagi, gunakan wadah standar:
int n = 10;
std::vector<double> a(n);
Jika Anda masih menginginkan array yang tepat, Anda dapat menggunakan konstanta , bukan variabel , saat membuatnya:
const int n = 10;
double a[n];
Demikian pula, jika Anda ingin mendapatkan ukuran dari fungsi di C ++ 11, Anda dapat menggunakan constexpr
:
constexpr int n()
{
return 10;
}
double a[n()];