Daniel F. schrieb:
> Der Speicher wird automatisiert dynamisch im Stack angelegt... ist natürlich
> nur für kleine Arrays ratsam da sonst ein Stack-Overflow die Folge ist.
>
> Das ganze wurde wohl eingeführt um Speicherlecks vorzubeugen...
Es wurde eingeführt, um eben, wenn man mal in einer Funktion lokal ein
Array braucht, dazu nicht gleich dynamische Allokation bemühen zu
müssen, auch wenn die Größe erst zur Laufzeit bekannt ist. Das bringt
natürlich auch was gegen Speicherlecks, aber es ist auch auf kleinen µCs
von Vorteil, um sich den Overhead von malloc und generell dynamischen
Speicherverwaltung zu sparen.
Viele C-Implementationen bieten übrigens auch eine Funktion namens
alloca() an, die ein entsprechendes Pendant zu malloc() ist, aber die
war nie Teil von Standard-C.