Hola Daniel.
Y sí, yo te diría que es casi una regla universal, la información de mejor calidad está en inglés (por lo menos para los que no leemos ruso o chino, que no podría saberlo). Por ejemplo, el libro que estás leyendo fue escrito en inglés, y después un traductor hizo lo mejor que pudo para que podamos leerlo en castellano.
La idea más básica es que las variables de duración automática (de esas que se declaran dentro de una función) se crean en la pila (stack), que tiene un tamaño limitado (puede ser 1 MB o más, depende del compilador y sus seteos --que entre paréntesis dentro del paréntesis, mira de qué manera abominable estamos hablando...)
Y entonces, como la stack tiene una capacidad bastante pobre, comparada con el heap (el "montículo" dio libre y guarde), que es donde se crean las variables con malloc, por ejemplo, y que no tiene esa limitación.
Una u otra forma de creación tienen sus pros y sus contras, que para no decir de apuro y mal, te paso la dirección de un documento donde lo explican muy prolijamente:
http://www.inf.udec.cl/~leo/teoX.pdf
y que lo escribe Leo Ferres del departamento de Ciencias de la Computación de la Universidad de Concepción, de Chile, en inglés, quizá para ser tomado en serio :)
Por lo que veo en el código
tSuper se crea como un array de
ok estructuras de tipo
Super, con el mecanismo del
VLA, o sea, en la stack. Decía eso de poner algún control, para que el tamaño de ese array no supere la capacidad de la stack (ese MB o 8 MB que puede tener por omisión ("por defecto", jé).