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
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;
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];
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!