Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyelesaikan Ralat 'Ekspresi Mesti Mempunyai Nilai Malar' Semasa Mencipta Tatasusunan?
Ungkapan Mesti Mempunyai Nilai Malar
Apabila cuba mencipta tatasusunan menggunakan pembolehubah sebagai dimensi, pengguna mungkin menghadapi ralat: "ungkapan mesti mempunyai nilai tetap." Ralat ini menandakan bahawa saiz tatasusunan tidak boleh ditentukan secara dinamik berdasarkan pembolehubah.
Untuk menyelesaikan ralat ini, beberapa pendekatan boleh diambil. Satu pilihan ialah mencipta tatasusunan yang diperuntukkan secara dinamik menggunakan pengendali baharu. Ini membolehkan saiz tatasusunan ditentukan semasa masa jalan. Walau bagaimanapun, adalah penting untuk diingat untuk membebaskan memori yang diperuntukkan secara manual menggunakan padam apabila selesai. Berikut ialah contoh:
// 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;
Sebagai alternatif, jika tatasusunan bersaiz tetap diperlukan, dimensi tatasusunan boleh diisytiharkan sebagai const. Ini memastikan saiz tatasusunan kekal malar dan memenuhi keperluan pengkompil untuk ungkapan malar. Berikut ialah contoh:
const int row = 8; const int col = 8; int arr[row][col];
Perhatikan bahawa coretan kod yang anda berikan, int [row][col];, tidak lengkap kerana ia tidak menyatakan nama pembolehubah untuk tatasusunan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Ekspresi Mesti Mempunyai Nilai Malar' Semasa Mencipta Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!