Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Tatasusunan Bersaiz Dinamik dalam C?

Bagaimanakah Saya Boleh Mencipta Tatasusunan Bersaiz Dinamik dalam C?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 13:06:49160semak imbas

How Can I Create a Dynamically Sized Array in 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:

  • Peruntukan Memori Dinamik: Peruntukan manual menggunakan baharu dan padamkan[].
int n = 10;
double* a = new double[n];
// ...
delete[] a;
  • Bekas Standard: Menggunakan bekas standard seperti std::vector.
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn