Wie implementiert GCC Arrays variabler Länge?

Wie implementiert GCC Arrays variabler Länge (VLAs)? Sind solche Arrays im Wesentlichen Zeiger auf den dynamisch zugewiesenen Speicher, wie er von alloca zurückgegeben wird?

Die andere Alternative, die ich mir vorstellen könnte, ist, dass ein solches Array als letzte Variable in einer Funktion zugewiesen wird, sodass der Versatz der Variablen während der Kompilierungszeit bekannt ist. Der Offset einer zweiten VLA wäre dann jedoch während der Kompilierzeit wieder nicht bekannt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage