Rumah > pembangunan bahagian belakang > C++ > Mengapa C Memerlukan Saiz Tatasusunan Malar: 'Ungkapan Mesti Mempunyai Nilai Malar'?

Mengapa C Memerlukan Saiz Tatasusunan Malar: 'Ungkapan Mesti Mempunyai Nilai Malar'?

Mary-Kate Olsen
Lepaskan: 2024-12-11 08:51:15
asal
638 orang telah melayarinya

Why Does C   Require Constant Array Sizes:

Saiz Tatasusunan Mesti Malar: "Ungkapan mesti mempunyai nilai tetap"

Apabila memulakan tatasusunan dalam C , saiz tatasusunan mesti diketahui pada masa penyusunan. Ini bermakna bahawa nilai untuk dimensi baris dan lajur tatasusunan mestilah ungkapan malar.

Pertimbangkan contoh berikut:

int row = 8;
int col = 8;
int [row][col]; // error: expression must have a constant value
Salin selepas log masuk

Dalam kod ini, tatasusunan diisytiharkan tanpa menyatakan nama pembolehubah. Selain itu, pembolehubah baris dan kol bukan pemalar, jadi pengkompil tidak boleh menentukan saiz tatasusunan pada masa penyusunan. Ini mengakibatkan ralat "ungkapan mesti mempunyai nilai malar".

Anasusunan Diperuntukkan Secara Dinamik

Untuk mencipta tatasusunan bersaiz dinamik, memori mesti diperuntukkan pada timbunan menggunakan pengendali baru. Memori yang diperuntukkan mesti diagihkan menggunakan pemadaman untuk mengelakkan kebocoran memori.

// Allocate the array
int** arr = new int*[row];
for (int i = 0; i < row; i++)
    arr[i] = new int[col];

// Use the array

// Deallocate the array
for (int i = 0; i < row; i++)
    delete[] arr[i];
delete[] arr;
Salin selepas log masuk

Tatasusunan Saiz Tetap

Untuk tatasusunan saiz tetap, dimensi baris dan kol mesti diisytiharkan sebagai const:

const int row = 8;
const int col = 8;
int arr[row][col];
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa C Memerlukan Saiz Tatasusunan Malar: 'Ungkapan Mesti Mempunyai Nilai Malar'?. 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