Heim >Backend-Entwicklung >C++ >Warum erfordert C konstante Array-Größen: „Ausdruck muss einen konstanten Wert haben'?
Array-Größe muss konstant sein: „Ausdruck muss einen konstanten Wert haben“
Beim Initialisieren von Arrays in C muss die Array-Größe bekannt sein zur Kompilierungszeit. Dies bedeutet, dass die Werte für die Zeilen- und Spaltendimensionen des Arrays konstante Ausdrücke sein müssen.
Betrachten Sie das folgende Beispiel:
int row = 8; int col = 8; int [row][col]; // error: expression must have a constant value
In diesem Code wird das Array ohne Angabe von a deklariert Variablenname. Darüber hinaus sind die Variablen row und col keine Konstanten, sodass der Compiler die Größe des Arrays zur Kompilierungszeit nicht bestimmen kann. Dies führt zu dem Fehler „Ausdruck muss einen konstanten Wert haben“.
Dynamisch zugewiesenes Array
Um ein Array mit dynamischer Größe zu erstellen, muss Speicher auf dem Heap zugewiesen werden neuer Betreiber. Der zugewiesene Speicher muss durch Löschen freigegeben werden, um Speicherlecks zu verhindern.
// 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;
Array mit fester Größe
Bei Arrays mit fester Größe müssen die Zeilen- und Spaltenabmessungen angegeben werden als const:
const int row = 8; const int col = 8; int arr[row][col];deklariert werden
Das obige ist der detaillierte Inhalt vonWarum erfordert C konstante Array-Größen: „Ausdruck muss einen konstanten Wert haben'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!