стек динамический и стек динамический массив - PullRequest
1 голос
/ 27 апреля 2019

Как компиляторы C / C ++ обрабатывают динамический массив с фиксированным стеком и динамические массивы стека. Я увидел, как статические переменные отличаются от динамических переменных стека, посмотрев адреса этих переменных в коде сборки.

1 Ответ

0 голосов
/ 27 апреля 2019

Как сказано в стеке замечаний динамические массивы из стандарта C ++.

Когда нет локального / стека динамического массива, место каждой локальной переменной в стеке является постоянным смещением в кадре, связанном с текущей функцией

Когда динамический массив введен среди локальныхПеременные компилятор должен учитывать размер, используемый для массива для доступа к локальным переменным, помещенным «после» массива, чтобы добавить его с постоянным смещением без него.Для этого мы можем легко представить, что размер / количество элементов также помещается в стек «перед» массивом, что позволяет сгенерированному коду читать его для вычисления смещения.Очевидно, что динамический массив влияет на производительность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...