Heim >Backend-Entwicklung >C++ >Wie kann ich in C ein Array mit dynamischer Größe erstellen?

Wie kann ich in C ein Array mit dynamischer Größe erstellen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-05 13:06:49136Durchsuche

How Can I Create a Dynamically Sized Array in C  ?

Array variabler Größe in C

Das Initialisieren eines Arrays mit variabler Länge ist in C nicht zulässig. In bestimmten Implementierungen wie G ist diese Vorgehensweise jedoch als Erweiterung zulässig.

int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Dieser Code führt zu einem Fehler, da „tenorData“ ein Objekt variabler Größe ist, das nicht initialisiert werden kann. Um dieses Problem zu lösen, können Sie die Array-Größe als numerisches Literal angeben:

double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Alternative Ansätze

Wenn Sie wirklich ein Array mit dynamischer Größe benötigen, bietet C dies an mehrere Optionen:

  • Dynamische Speicherzuweisung:Manuelle Zuweisung mit Neu und löschen[].
int n = 10;
double* a = new double[n];
// ...
delete[] a;
  • Standardcontainer:Verwendung von Standardcontainern wie std::vector.
int n = 10;
std::vector<double> a(n);

Arrays mit konstanter Größe

Wenn kein Array mit variabler Größe erforderlich ist, können Sie es erstellen ein Array fester Größe mit einer Konstante:

const int n = 10;
double a[n];

Oder Sie können einen constexpr in C 11 verwenden:

constexpr int n()
{
    return 10;
}

double a[n()];

Das obige ist der detaillierte Inhalt vonWie kann ich in C ein Array mit dynamischer Größe erstellen?. 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