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
Linda Hamiltonasal
2024-12-10 06:40:21903semak imbas

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

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];
// Use the array
// ...

// Deallocate the array
for (int i = 0; i < row; i++)
    delete[] arr[i];
delete[] arr;
  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];

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!

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