Rumah > pembangunan bahagian belakang > C++ > Bagaimana Saya Membetulkan Ralat Sintaks 'ungkapan mesti mempunyai nilai malar' Semasa Mengisytiharkan Tatasusunan dalam C?

Bagaimana Saya Membetulkan Ralat Sintaks 'ungkapan mesti mempunyai nilai malar' Semasa Mengisytiharkan Tatasusunan dalam C?

Linda Hamilton
Lepaskan: 2024-12-10 06:40:21
asal
852 orang telah melayarinya

How Do I Fix a

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
Salin selepas log masuk

Ralat ini timbul kerana tatasusunan dalam C memerlukan ungkapan malar untuknya saiz.

Menyelesaikan Ralat

Untuk menyelesaikan ralat ini, anda mempunyai dua pilihan:

  1. Buat Tatasusunan Dinamik pada the Heap:

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];
Salin selepas log masuk
// Use the array
// ...

// Deallocate the array
for (int i = 0; i < row; i++)
    delete[] arr[i];
delete[] arr;
Salin selepas log masuk
  1. Isytihar Saiz Tatasusunan sebagai Pemalar:

Untuk mengekalkan tatasusunan saiz tetap, anda mesti mengisytiharkan dimensi sebagai pemalar:

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

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!

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