http://lentoplivo.ru/torfosmesi
никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт lentoplivo.ru
Тема торфяной субстрат там представлена весьма широко.
• Автоматическая память (automatic storage). Переменные, определенные в функциях (включая параметры функции), размещаются в автоматической памяти (т.е. в стеке), если они явно не объявлены с помощью ключевого слова static. Автоматическая память выделяется, когда функция вызывается, и освобождается при возвращении управления в вызывающий модуль. Таким образом, если функция (явно или неявно) вызывает сама себя, может существовать несколько копий автоматических данных: по одной копии на каждый вызов.
• Статическая память (static storage). Переменные, объявленные в глобальной области видимости и в области видимости пространства имен, хранятся в статической памяти, как и переменные, явно объявленные с помощью ключевого слова static в функциях и классах. Редактор связей выделяет статическую память до запуска программы.
• Свободная память (куча) (free store (heap)). Объекты, созданные с помощью оператора new, размещаются в свободной памяти.
Рассмотрим пример.
vector vg(10); // создается один раз при старте программы
// ("до функции main()")
vector* f(int x)
{
static vector vs(x); // создается только при первом
// вызове f()
vector vf(x+x); // создается при каждом вызове f()
for (int i=1; i<10; ++i) {
vector vl(i); // создается на каждой итерации
// . . .
} // переменная v1 уничтожается здесь (на каждой итерации)
return new vector(vf); // создается в свободной памяти
// как копия переменной vf } // переменная vf уничтожается здесь
void ff()
{
vector* p = f(10); // получает вектор от функции f()
// . . .
delete p; // удаляет вектор, полученный от
// функции f
}
Переменные vg и vs, размещенные в статической памяти, уничтожаются по завершении программы (после функции main()), при условии, что они были созданы.
Память для членов класса отдельно не выделяется. Когда вы размещаете объект где-то, то нестатические члены размещаются там же (в том же классе памяти, что и сам объект, которому они принадлежат).
Код хранится отдельно от данных. Например, функция-член не хранится в каждом объекте своего класса; одна ее копия хранится вместе с остальной частью кода программы.
Опубликовал katy
May 01 2015 11:56:06 ·
0 Комментариев ·
2623 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.