Виды выделений оперативной памяти в c++

интернет Компьютеры программирование windows C++

Можете максимально просто рассказать про автоматические, статистические и динамические выделения памяти в c++. (Совсем новичок)
Ответы:
То что написал Mont'ka - это не верно.
Статическое выделение памяти это когда компилятор знает требуемый объём памяти и управляет ими самостоятельно то есть выделение и освобождение. Они хранится в стеке или в сегменте данных. Это вовсе не данные объявленные со словом static.
К примеру:
   int var; // Это и есть статическое выделение памяти.
Так как мы явно указываем размер данных которые собираемся хранить.
Также статическое выделение будет и здесь:
   int arr[6];
Тут мы говорим нам нужен массив длиной в 6 элементов типа int.(только не нужно думать что для std::string это тоже так, это отдельная тема)
----------------------------------------
Динамическое же выделение памяти происходит во время выполнения программы. Для того чтобы это сделать нужно либо вызвать new, (и то что он написал это для int(я не уверен что будет вообще работать) писать ни когда не надо, оно используется только для классов, ну или на крайний случай для структур, или в си стиле использовать ручное выделение и управление динамической памятью с помощью функций:
Да совсем забыл, про динамическое выделение массива при помощи new[], извиняюсь за это.(конечно же можно выделить память и через функцию  malloc(..) но разводить срач на тему "что лучше malloc(..) или new[]" не стану)
Вот пример:
   int *arr = new int [n];
Соответственно удалять нужно так:
  delete[] arr;
если совсем по простому....
при статическом способе, память для переменных выделяется на этапе компиляции программы
при динамическом - на этапе выполнения.
т.е. если мы заранее знаем, что нам понадобится массив типа Int из 150 элементов, мы объявляем переменную int arr[150].
если требуемый размер заранее не известен, мы объявляем указатель Int *arr; а позже выделяем память под элементы массива arr = new int[N]; (где N - кол-во элементов)


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.