Heim >Backend-Entwicklung >C++ >Wie behebt man den Fehler „Erwarteter konstanter Ausdruck' beim Deklarieren von Arrays in C?
Fehler „Erwarteter konstanter Ausdruck“ für Array-Größe beheben
Bedenken Sie den folgenden C-Code:
<code class="cpp">int count = 0; float sum = 0; float maximum = -1000000; std::ifstream points; int size = 100; float x[size][2]; // <<< Error
Dies Code löst beim Deklarieren des Arrays x den Fehler „Erwarteter konstanter Ausdruck“ aus. Dieser Fehler tritt auf, weil C erfordert, dass nicht-statische Array-Größen zur Kompilierungszeit bekannt sind.
Lösung mit Vektoren
Um dieses Problem zu beheben, können wir einen C-Vektor verwenden anstelle eines Arrays:
<code class="cpp">std::vector<std::array<float, 2>> x(size);</code>
Lösung mit new
Ein anderer Ansatz besteht darin, das Array dynamisch mit dem new-Operator zuzuweisen:
<code class="cpp">float (*px)[2] = new float[size][2];</code>
Alternative Lösungen
Überlegungen für Nicht-C 11-Compiler
Wenn Sie Wenn Sie keine C 11-Unterstützung haben, verwenden Sie die folgenden Techniken:
Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Erwarteter konstanter Ausdruck' beim Deklarieren von Arrays in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!