Сайт использует сервис веб-аналитики Яндекс Метрика с помощью технологии «cookie». Пользуясь сайтом, вы даете согласие на использование данной технологии.
В этом уроке мы продолжим изучать функции. И в этот раз мы поговорим о внутреннем их устройстве. Разберемся как передаются параметры в функцию, как возвращается результат, где сохраняются локальные переменные функции, а также как функция узнает куда передать управление после того как она отработала. Чтобы ответить на эти вопросы, мы разберемся какие сегменты памяти выделяются для программы. Что такое стек вызовов (Call Stack), куча (Heap). Также узнаем что такое рекурсия и переполнение стека вызовов. Ну и напоследок я расскажу как взламываются программы на Си и как обезопасить свою программу от взлома. 00:00 Вступление 00:30 О чем этот урок? 04:45 Что такое стек? 07:18 Сегменты памяти программы 09:09 Этапы выполнения программы 12:05 Как работает Push в Call Stack? 14:50 Пример работы Call Stack во время выполнения программы 21:34 Что такое рекурсия? 30:35 Сегмент памяти Куча (Heap) 39:26 Выводы 40:30 Как взламывают программы на Си? 44:05 Заключение