Lokale Arrays
-
Lokale Variablen werden doch auf dem Stack erstellt, oder?
Gilt das auch für lokale Arrays? Sind lokale Arrays dann schneller?
Meine Funktion wird außerdem sehr häufig aufgerufen. Dabei wird doch das lokale Array jedesmal neu erstellt. Dauert das sehr lange?
-
In der Regel dauert das nicht lange. Hast du schon einmal etwas über static gelesen?
-
Ui, des is gar keine schlechte Idee *schäm*
-
<vorsicht implementationsspezifisch;)>
Beim Eintritt in eine Funktion werden alle lokalen Variablen auf einen Schlag durch eine Subtraktion einer Konstanten vom Stackpointer "angelegt". Das dauert immer gleichlang, egal ob du einen int (solange er nicht in einem Register landet) oder ein 10000elementiges Array hast.
-
@Bashar
Das gilt aber doch nicht für komplexe udts.Sicher ints und PODs sind fein, aber bei einem Array voll von komplexen Objekten mit hässlichem Standardctor sieht das alles doch ganz anders aus.
-
klar, die u.U. fällige Initialisierung dauert länger. Ich meinte einzig und allein die Reservierung des Speichers.
-
@Bashar
Mir ist klar, dass du das weißt. Ich hatte das nur ergänzen wollen, da ich mir vorstellen kann, dass der ein oder andere das nicht weiß.War nur mal wieder unglücklich formuliert.