Array variabler Länge

8

Ich würde gerne wissen, wie ein Array variabler Länge verwaltet wird (welche zusätzlichen Variablen oder Datenstrukturen werden auf dem Stack gehalten, um Arrays variabler Länge zu haben).

Vielen Dank.

    
user331561 03.05.2010, 15:52
quelle

3 Antworten

4

Es ist nur ein Array mit dynamischer Größe (implementierungsabhängig, aber am häufigsten auf dem Stack). Es ist in den alten Tagen so ähnlich wie alloca , mit der Ausnahme, dass sizeof die tatsächliche Größe des Arrays zurückgibt, was bedeutet, dass die Größe des Arrays auch irgendwo gespeichert werden muss (auch implementationsabhängig, aber wahrscheinlich auf dem Stapel auch).

    
Paul R 03.05.2010 15:54
quelle
1

Die Größe von Arrays mit variabler Länge wird zur Laufzeit anstelle der Kompilierungszeit bestimmt.
Wie es verwaltet wird, hängt vom Compiler ab.
GCC beispielsweise weist Speicher auf dem Stack zu.
Aber es gibt keine spezielle Struktur. Es ist nur ein normales Array, dessen Größe zur Laufzeit bekannt ist.

    
Macmade 03.05.2010 15:56
quelle
-2

alternativ könnten Sie einige Behälter verwenden, z. ArrayList in Java oder Vektor in c / c ++

    
poeschlorn 04.05.2010 06:03
quelle

Tags und Links