В написании игры на Rust приходится делать краткий довольно обширный детур, чтобы разобраться с тем, как этот язык работает с памятью. Предыдущие части: Колхозим интерфейсы, Где у него классы, Поддержка SDL2, Полируем ржавчину Память компьютера – это одно непрерывное и однородное пространство адресов. Память же программы делится на несколько логических областей: статическая, стек и куча. 1. Статическая Это память, которую занимает сам код программы. Вместе с кодом могут храниться данные. Например,...
Кратко про основные различия (этого ответа достаточно на собеседовании): 🟰 Стек работает быстрее, потокобезопасен и имеет фиксированный размер. Управляется ОС. Хранит локальные переменные и аргументы функций. 💩 Память в куче динамически расширяемая и требует ручного управления или участия сборщика мусора. Может хранить глобальные переменные и ссылки (указатели). 🟰 Выделение памяти в стеке последовательно и фиксировано на этапе компиляции, и нельзя изменять размер стека после начала выполнения программы...