Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyelesaikan Ralat 'Ekspresi Mesti Mempunyai Nilai Malar' Semasa Mencipta Tatasusunan?

Bagaimana untuk Menyelesaikan Ralat 'Ekspresi Mesti Mempunyai Nilai Malar' Semasa Mencipta Tatasusunan?

Linda Hamilton
Linda Hamiltonasal
2024-12-07 12:27:14575semak imbas

How to Resolve the

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!

Kenyataan:
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