Heim >Backend-Entwicklung >C++ >Wie behebe ich den „Erwarteten Konstantenausdrucksfehler' für die Array-Größe in C?

Wie behebe ich den „Erwarteten Konstantenausdrucksfehler' für die Array-Größe in C?

DDD
DDDOriginal
2024-10-24 21:55:02705Durchsuche

How to Resolve the

Erwarteter Konstantenausdrucksfehler für Array-Größe

In C ist die Deklaration von Arrays mit Laufzeitgrößen nicht zulässig. Dieser Fehler tritt in der Zeile float x[size][2] auf, da der Compiler erwartet, dass die Array-Größe ein konstanter Ausdruck ist.

Lösung

Um diesen Fehler zu beheben , kann man alternative Ansätze verwenden:

  1. std::vector: Verwenden Sie einen Vektor von Arrays, um die Array-Größe zur Laufzeit anzugeben: std::vector< std::array > x(size);
  2. Dynamische Speicherzuweisung: Nutzen Sie die dynamische Speicherzuweisung mit neuen und Löschoperatoren: float (*px)[2] = new float[size][2];.
  3. Benutzerdefinierter Array-Typ: Definieren Sie einen benutzerdefinierten Array-Typ, der in einem Vektor platziert werden kann, wenn weder C 11 noch Boost zugänglich sind.
  4. std::pair : Verwenden Sie einen Vektor von std::pair für eine einfachere Syntax: std::vector< std::pair > x(size);

Es ist wichtig zu beachten, dass erwartete Konstantenausdrucksfehler auftreten, wenn ein Ausdruck zur Kompilierungszeit nicht ausgewertet werden kann. Bei Array-Deklarationen stellt die Verwendung konstanter Ausdrücke sicher, dass der Compiler die Größe des Arrays beim Kompilieren bestimmen kann.

Das obige ist der detaillierte Inhalt vonWie behebe ich den „Erwarteten Konstantenausdrucksfehler' für die Array-Größe in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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