Heim > Backend-Entwicklung > C++ > Warum erfordert C konstante Array-Größen: „Ausdruck muss einen konstanten Wert haben'?

Warum erfordert C konstante Array-Größen: „Ausdruck muss einen konstanten Wert haben'?

Mary-Kate Olsen
Freigeben: 2024-12-11 08:51:15
Original
639 Leute haben es durchsucht

Why Does C   Require Constant Array Sizes:

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
Nach dem Login kopieren

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;
Nach dem Login kopieren

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];
Nach dem Login kopieren
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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage