Ich verstehe das Grundkonzept von statischen Arrays und dynamischen Arrays. Der Hauptunterschied zwischen diesen beiden ist einer (Statisches Array) weist Speicher zur Kompilierungszeit und der andere zur Laufzeit zu. Wir können jedoch ein statisches Array erstellen, dessen Größe der vom Benutzer eingegebene Wert wäre.Dynamische Arrays und statische Arrays Kompilierzeit oder Laufzeit?
int value ;
cin >> value ;
int array [value] ;
int i = 0 ;
while(i < value)
{
cin >> array[i] ;
i ++ ;
}
Also das Programm kennt nicht die Größe dieses Arrays, bis zur Laufzeit. Also Was ist der eigentliche grundlegende Unterschied zwischen statischen und dynamischen Arrays dann, wenn statische Array kann auch gemacht werden, um Speicherplatz auf der Laufzeit zuzuordnen?
Auch sprechen über die Resizability des Arrays. Um ein dynamisches Array zu erweitern, können wir das vorherige Array nach dem Kopieren seiner Elemente in ein neues dynamisches Array doppelter Größe löschen. Wir können das Gleiche mit statischen Arrays tun, oder? [Das ursprüngliche Array kann in diesem Fall jedoch nicht gelöscht werden und verwendet redundanten Stapelspeicherplatz. Ist dies der einzige Unterschied zwischen S.Array und D.Array dann]
"Raw" -Arrays sind niemals dynamisch (sie ändern ihre Größe nicht), können aber dynamisch zugewiesen werden. 'std :: vector' ist dynamisch (kann zur Laufzeit die Größe ändern) und sollte in diesem Fall verwendet werden. – crashmstr
VLA ist nicht Standard C++. es ist eine Erweiterung. – Jarod42
_allokiert den Speicher zur Kompilierzeit_ nein, das ist nicht möglich. –