Другие языки программирования и технологии

Программисты помогите плиз!!

Учусь в универе первый курс. Не могу понять. . обьясните что собой представляет статическое и динамическое распределние памяти ( в блоке и в куче) ? какие плюсы и какие минусы? ?
я читал-читал.. но както не совсем всё понял.
заранее благодарю!
Kornilov Kor
Kornilov Kor
126
динаическая память используется. когда ты точно не знаешь, сколько объектов (в массиве) у тебя будет. Это позволяет более эффективно распределить память - ее выделяется ровно столько, сколько нужно. В статической памяти ты изначально пишешь: "буду использовать 100 элементов, дай мне 100байт". И система выделят тебе 100 байт. (к примеру) . Даже если ты используешь только 2 элемента, память на остальные 98 все равно резервируется.

Минусы динамической - нужно не забыть зарезервировать ее когда есть элемент и очистить в конце. Как-то так.
Вячеслав Зыбалов
Вячеслав Зыбалов
873
Лучший ответ
int arr1[100];//статически выделили 100 элементов, они никуда не исчезнут до конца работы функции или программы, если это глобальная переменная
int *arr2=new int[100];//динамически выделили 100 элементов, до этой строчки их не было
delete[] arr2;//и после этой их опять нет
~[Пашка]~
~[Пашка]~
80 257
Статическая память распределяется при загрузке программы (и, соответственно, автоматически возвращается системе при завершении программы) . А вот динамическую программист должен запрашивать и возвращать сам. При этом система может еще и отказать в нужном объеме памяти. Зачем же вообще заморачиваться с динамической? Ее используют, когда заранее неизвестно какой объем памяти в процессе выполнения программы потребуется и потребуется ли он вообще. А так же для того, чтобы не занимать память, которая нужна для какой-либо задачи только на время.
Ты универ точно не закончишь, начинай учить присягу, что бы время не терять.