Здравствуйте! Разъясните в какой памяти обычно размещаются переменные и в чем ее отличие от динамической памяти вообще( что это вообще такое). Благодарю за содействие. mail to: diodon@mail.primorye.ru
Отправлен: 27.01.2005, 15:22
Вопрос задал: Алексей Петрович Вульфенштейн (статус: Читатель)
Всего ответов отправлено: 2
Отвечает: Boriss
Здравствуйте, Алексей Петрович Вульфенштейн!
Ну раз Вы задали этот вопрос в рассылку по Delphi, то ответ - никакой в 32 разрядных приложениях.
Вот в программах под DOS - другое дело. Если это нужно, то напишите
А так, в DOS программе выделяется до 64 кил памяти под переменные, а если нужно, то программа может получить и больше. В защищенном режиме всю, что есть. В "обычно" реальном - 640К.
Ответ отправил: Boriss (статус: Профессионал)
Отправлен: 27.01.2005, 16:23
Отвечает: sir henry
Здравствуйте, Алексей Петрович Вульфенштейн!
Обычные переменные, которые создаются перед началом выполнения программы - статические. Для них выделяется место в памяти, когда Вы запускаете программу.
Динамическая память вообще :) - это кусок адресов (в виндах это обычно 2Г), которые предоставляет Вам операционная система для каких-либо целей, когда объем памяти под эти цели нельзя определить заранее.
Пример. Допустим Вам надо обработать двумерный массив, размер и тип которого заранее известен. Тогда Вы, в области описания переменных задаете его параметры:
var
ar1: array[0..9, 0..9] of integer;
А вот если размер заранее неизвестен, то тут без динамического массива никак не обойтись:
var
ar1: array of integer;
И где-нибудь в программе, когда Вы уже по ходу выполнения определились с размером:
SetLength(ar1, 400);
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 28.01.2005, 05:09