Перед программистами C99 было необходимо определить все массивы с фиксированными размерами, которые были известны во время компиляции. Как людям удалось создать и получить доступ к структурам, которые вели себя как массивы, но размеры которых не были известны до выполнения?
malloc()
С помощью malloc (3) и free (3) для динамического управления памятью. Это все еще сделано сегодня.
malloc (3)
free (3)
void f(int n) { int *nInts = malloc(n * sizeof(int)); /* do stuff with 'nInts' */ free(nInts); }
alloca()
free()
Я думаю, вы имеете в виду это .
Как сказано там, это не совсем уверен, что это законно или переносимо. Тем не менее, я видел такой код, но никогда не писал его сам.