Разница между статической и динамической памятью в C++ заключается в следующем:
- Статическая память выделяется компилятором на этапе компиляции программы и хранится в исполняемом файле. 6 При запуске программы необходимые секции исполняемого файла операционная система загружает в оперативную память. 6 Размер статической памяти не может меняться в процессе выполнения программы. 8 Переменные в статической памяти живут до конца выполнения программы. 8
- Динамическая память выделяется во время работы программы. 9 Все объекты, выделяемые динамически, размещаются в куче (heap). 9 Это позволяет по ходу работы программы контролировать и корректировать объём используемой памяти и, следовательно, создавать программы, способные обрабатывать большие объёмы данных. 9
Таким образом, при статическом выделении памяти компилятор выполняет выделение и освобождение памяти автоматически, а при динамическом — программист делает это вручную. 1