Rumah > pembangunan bahagian belakang > C++ > Bolehkah Tatasusunan C99 Disaizkan pada Masa Jalan Tanpa Peruntukan Memori Dinamik?

Bolehkah Tatasusunan C99 Disaizkan pada Masa Jalan Tanpa Peruntukan Memori Dinamik?

Linda Hamilton
Lepaskan: 2024-12-31 02:03:13
asal
233 orang telah melayarinya

Can C99 Arrays Be Sized at Runtime Without Dynamic Memory Allocation?

Memahami Penentuan Saiz Tatasusunan pada Masa Larian tanpa Peruntukan Dinamik

Mendapatkan penjelasan mengenai kesahihan penentuan saiz tatasusunan pada masa larian tanpa peruntukan dinamik, ia berbaloi untuk meneroka pengenalan tatasusunan bersaiz berubah C99 pada tindanan.

Dalam coretan kod yang disediakan:

int main(int argc, char **argv) {
    size_t size;
    cin >> size;
    int array[size];
    ...
    return 0;
}
Salin selepas log masuk

Saiz tatasusunan ditentukan secara dinamik pada masa jalan berdasarkan input pengguna yang disimpan dalam pembolehubah saiz. Tingkah laku ini disokong oleh C99, yang membolehkan tatasusunan bersaiz berubah-ubah diisytiharkan pada tindanan.

Tidak seperti peruntukan memori dinamik menggunakan malloc atau baharu, yang memperuntukkan memori daripada timbunan, tatasusunan bersaiz berubah-ubah diperuntukkan pada timbunan itu. Pengkompil melaraskan penuding tindanan dengan sewajarnya, sama seperti cara ia mengendalikan tatasusunan bersaiz statik (cth., tatasusunan int[100]).

Adalah penting untuk ambil perhatian bahawa tatasusunan bersaiz pembolehubah pada tindanan adalah berbeza daripada yang diperuntukkan secara dinamik tatasusunan. Yang pertama tidak melibatkan peruntukan timbunan dan beroperasi secara langsung pada timbunan, manakala yang terakhir menggunakan ingatan timbunan.

Atas ialah kandungan terperinci Bolehkah Tatasusunan C99 Disaizkan pada Masa Jalan Tanpa Peruntukan Memori Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan