Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Tatasusunan Bersaiz Dinamik dalam C?
Tatasusunan Bersaiz Pembolehubah dalam C
Memulakan tatasusunan dengan panjang berubah-ubah tidak dibenarkan dalam C . Walau bagaimanapun, dalam pelaksanaan tertentu seperti G , amalan ini dibenarkan sebagai sambungan.
int n = 10; double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Kod ini akan mengakibatkan ralat kerana "tenorData" ialah objek bersaiz pembolehubah yang tidak boleh dimulakan. Untuk menyelesaikan isu ini, anda boleh menentukan saiz tatasusunan sebagai literal angka:
double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Pendekatan Alternatif
Jika anda benar-benar memerlukan tatasusunan bersaiz dinamik, C menyediakan beberapa pilihan:
int n = 10; double* a = new double[n]; // ... delete[] a;
int n = 10; std::vector<double> a(n);
Susunatur Bersaiz Malar
Jika tatasusunan bersaiz pembolehubah tidak diperlukan, anda boleh mencipta tatasusunan saiz tetap menggunakan pemalar:
const int n = 10; double a[n];
Atau, anda boleh menggunakan constexpr dalam C 11:
constexpr int n() { return 10; } double a[n()];
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Tatasusunan Bersaiz Dinamik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!