динамические переменные



Динамические переменные в c

Автор Мурад Ахундов задал вопрос в разделе Другие языки и технологии

Зачем нужны динамические переменные в C++ Кто-нибудь объяснит на человеческом?) и получил лучший ответ

Ответ от Nikita zaharov[гуру]
Динами́ческая переме́нная — переменная в программе, место в оперативной памяти под которую выделяется во время выполнения программы. По сути, она является даже не переменной, а участком памяти, выделенным системой программе для конкретных целей. Динамическая переменная — один из классов памяти переменной.
Так как динамическая переменная создаётся во время выполнения программы, у неё нет собственного идентификатора. Работа с динамической переменной ведётся косвенно, через указатель. Создание такой переменной заключается в выделении участка памяти с помощью специальной функции. Эта функция возвращает адрес в памяти, который назначается указателю. Процесс доступа к памяти через указатель называется разыменованием. После окончания работы с динамической переменной выделенную под неё память необходимо освободить — для этого тоже есть специальная функция.
В языках программирования относительно низкого уровня указатели используются явно, в языках более высокого уровня динамические типы данных могут быть оформлены как классы, а процессы выделения и освобождения памяти описаны в конструкторе и деструкторе каждого класса.

Ответ от Krab Bark[гуру]
Для экономного расходования памяти. Часто количество данных, которые будут перерабатываться в программе, заранее неизвестно.

Ответ от Shalafi[гуру]
Чтоб выделить нужное кол-во памяти для пользовательского типа данных.

Ответ от Special L.O.R. forces[гуру]
Загрузка файла, какой массив нужен для его загрузки?
char a[9999999999] Занимает слишком много памяти
а
char b[55555] Может не хватить
Поэтому юзаем динамический
char *c = new char[Размер файла]

Ответ от Максим[гуру]
Есть стековая память, а есть куча. В стековой памяти данные лежат на своих местах, например, если мы создаём какой-то объект, то мы знаем, что первые несколько байт у него заложены под одно, следующие под другое и т. д. Если мы располагаем в стековой памяти массив, то он тоже должен иметь фиксированную длину. Если мы запускаем какой-то метод, то и в рамках этого метода всё на своих местах. Когда метод заканчивается или какой-либо объект уничтожается и т. д., то и стековая память освобождается. Когда же у нас динамическая переменная, то в стековой памяти у нас лежит только ссылка на эту переменную, которая сама располагается в куче, а не в стеке. Таким образом мы можем создать массив с заранее неизвестной длиной (динамический массив). Мы можем создавать переменные и объекты, которые сможем передавать в другие участки кода (через указатели на них). Но данные в куче нужно удалять самостоятельно.

Ответ от Sagittarius[гуру]
На человеческом языке идею динамической памяти понять легко.
Представьте себе, что вы делаете вычисления в тетрадке. Каждая клетка, это результат, который вам нужен. Теперь возникает необходимость выполнить какие-то вычисления с большим объемом промежуточных данных. Вы достаете чистый лист. Делаете на нем вычисления, а полученный результат записываете в тетрадь. Лист с промежуточными расчетами вы выбрасываете.
Единственное отличие от бумажных расчетов в том, что в компьютере в можете запросить снова этот лист, стереть его содержимое и использовать в других расчетах.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Зачем нужны динамические переменные в C++ Кто-нибудь объяснит на человеческом?)

подскажите, в чём измеряеться вязкость?
Вязкость (абсолютная вязкость, или динамическая вязкость) - это свойство жидкостей и газов,
подробнее...

Программирование С++ Что такое Динамические массивы?
Ну вообще даже в Википедии есть объяснение этой технологии.
Грубо говоря это карман, размер
подробнее...

да зачем нужны эти указатели ?? C++. Зачем нужны указатели? почему не обойтись без простой переменной??
Указатель содержит адрес первого байта объекта в памяти, тип указателя, говорит о том сколько
подробнее...
спросили в Arrow Air
Как задать динамический массив в языке C#
int size; // будущий размер
int[] arr; // будущий массив
size =
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в New
Операции new и delete. Операции new и delete нужна теори про данные операции.
смотри msdn )

вот кое-что из Вики:

В языке программирования C++, new —
подробнее...
спросили в Доступнее Образцы
Статичная функция внутри класса. какие данные будут доступны всем образцам класса?
Полагаю, речь идет о С++?

> если мы создаем статичную ПЕРЕМЕННУЮ внутри классаподробнее...
спросили в Randomness Stdio h
C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
Объясняю: массив - это ряд одинаковых значений (нет, я не Очевидность 🙂 ). Имя массива в C/C++
подробнее...

Что такое куча, стек и область данных на C/C++ ?
Куча - это область памяти, выделяемая и освобождаемая динамически. Есть менеджер кучи, который этим
подробнее...

Как узнать максимально возможный размер массива в С++?
Есть UINT_MAX в limits.h в 4294967295 элемента. Вопрос в том, какая разрядность у операционной
подробнее...
спросили в User all User all 0
Оператор присваивания C++
Проблема с самоприсваиванием давно и легко решена:

#include <iostream>подробнее...
Динамическая переменная программирование на Википедии
Посмотрите статью на википедии про Динамическая переменная программирование
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*