Массив переменной длины

Я хотел бы знать, как массивом переменной длины управляют (какие дополнительные переменные или структуры данных сохранены на стеке, чтобы иметь массивы переменной длины).

Большое спасибо.

8
задан Michael Myers 3 May 2010 в 15:53
поделиться

3 ответа

Это просто массив с динамическим размером (зависит от реализации, но чаще всего находится в стеке). Это очень похоже на alloca в старые времена, за исключением того, что sizeof вернет фактический размер массива, что означает, что размер массива также должен быть где-то сохранен ( тоже зависит от реализации, но, вероятно, тоже в стеке).

4
ответ дан 6 December 2019 в 00:54
поделиться

Размер массивов переменной длины определяется во время выполнения, а не во время компиляции.
Способ управления зависит от компилятора.
GCC, например, выделяет память в стеке.
Но особой структуры нет. Это просто обычный массив, размер которого известен во время выполнения.

1
ответ дан 6 December 2019 в 00:54
поделиться

в качестве альтернативы вы можете использовать несколько контейнеров, например ArrayList в java или вектор в c / c ++

-2
ответ дан 6 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: