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