int add( int as[10], int i, int j ) { return as[i] + as[j]; }
Was ist nun aber, wenn wir beim Schreiben des Programmcodes noch nicht genau wissen, wie groß ein Arrays sein muss, um alle benötigten Daten aufzunehmen? Intuitiv könnte man annehmen, dass der folgende Code das Problem löst und ein Array der Größe n
deklariert:
int n; ... n = ... ... int as[n];
Das funktioniert allerdings nicht, und zwar aus einem ganz einfachen Grund: bei einer Variablendeklaration in C++ muss der Compiler zur Kompilierungszeit bereits wissen, wie viel Speicher die Variable benötigt, um entsprechenden Code generieren zu können. In der obigen Konstellation wäre die Größe des Arrays zur Zeit der Kompilierung aber nicht bekannt und dem Compiler wäre nicht bekannt, wie viel Platz auf dem Stack reserviert werden müsste. Wir benötigen also einen anderen Mechanismus, um Speicher erst zur Laufzeit reservieren zu können. Das Schlüsselwort hierfür ist der Heap – was das aber genau ist, werden wir im nächsten Artikel sehen.
Kommentare (22)