Penyelesaian Masalah: Ralat Sintaks dalam Pengisytiharan Tatasusunan
Apabila cuba mencipta tatasusunan daripada pembolehubah yang diisytiharkan, anda mungkin menghadapi ralat:
expression must have a constant value
Ralat ini timbul kerana tatasusunan dalam C memerlukan ungkapan malar untuknya saiz.
Menyelesaikan Ralat
Untuk menyelesaikan ralat ini, anda mempunyai dua pilihan:
Susun atur dinamik membenarkan saiz berubah-ubah dengan memperuntukkan memori pada timbunan. Walau bagaimanapun, anda mesti memperuntukkan dan mengagihkan secara manual memori ini menggunakan operator baharu dan padam:
// 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;
Untuk mengekalkan tatasusunan saiz tetap, anda mesti mengisytiharkan dimensi sebagai pemalar:
const int row = 8; const int col = 8; int arr[row][col];
Awas
Sintaks yang anda berikan, int [row][col];, tidak betul kerana ia tidak menyatakan nama pembolehubah untuk tatasusunan.
Atas ialah kandungan terperinci Bagaimana Saya Membetulkan Ralat Sintaks 'ungkapan mesti mempunyai nilai malar' Semasa Mengisytiharkan Tatasusunan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!