Rumah >pembangunan bahagian belakang >C++ >Mengapakah Pengisytiharan Tatasusunan C Memerlukan Ungkapan Nilai Malar?
Pengisytiharan Tatasusunan dalam C : Memahami Ungkapan Nilai Malar
Dalam C , apabila cuba mencipta tatasusunan berdasarkan dimensi berubah, seperti:
int row = 8; int col = 8; int [row][col];
ralat seperti "ungkapan mesti mempunyai nilai tetap" mungkin timbul. Ralat ini berlaku kerana saiz tatasusunan mesti ditetapkan pada masa penyusunan.
Untuk menangani isu ini, terdapat dua pilihan:
1. Peruntukan Tatasusunan Dinamik:
Untuk tatasusunan bersaiz dinamik, adalah perlu untuk memperuntukkan memori pada timbunan dan mengurus peruntukan dan deallocationnya secara manual. Ini boleh dilakukan seperti berikut:
// 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;
2. Tatasusunan Diisytiharkan Pemalar:
Jika saiz tatasusunan ditetapkan, ia boleh diisytiharkan menggunakan pemalar:
const int row = 8; const int col = 8; int arr[row][col];
Dalam contoh pertama, pengisytiharan tatasusunan tidak mempunyai nama pembolehubah, yang mana akan menyebabkan ralat penyusunan berasingan. Selain itu, pengkompil memerlukan ungkapan nilai malar untuk pengisytiharan saiz tatasusunan untuk memastikan sempadan yang diketahui secara statik dan pengurusan sumber yang dioptimumkan.
Atas ialah kandungan terperinci Mengapakah Pengisytiharan Tatasusunan C Memerlukan Ungkapan Nilai Malar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!