Изменения

Перейти к: навигация, поиск

Выполнение программы

290 байт добавлено, 20:58, 12 июля 2011
Размещение локальных переменных
==Размещение локальных переменных==
[[Файл:locals.png|right|thumb|200px|Локальные переменные на стеке<center>Стек при выполнении функции</center>]]
В функциях для выполнения промежуточных вычислений, временного хранения данных и пр. могут быть использованы локальные переменные. Эти переменные являются временными и создаются при вызове функции, а удаляются при завершении ее выполнения. Для использования локальных переменных необходимо выделить память. Эта В С++ память тоже для всех локальных переменных функции выделяется на стекепри начале ее выполнения, и удаляется перед выполнением команды <tex>ret</tex>, чтобы в вершине стека снова оказался адрес возврата.
С помощью функции <tex>\_alloca()</tex> можно увеличить размер стека для размещения локальных данных. Так как объем стека ограничен,при использовании этой функции может возникнуть переполнение стека. Простейший пример кода, который вызовет переполнение:
97
правок

Навигация