Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как освободить память от массива [D6, Win95/98, NT4]


Страницы:   1 2

mazepa ©   (2002-06-15 12:01:00) 

Использовав массив довольно больших размеров хотелось бы навсегда о нем забыть, но он весит в памяти.
Что делать?
Заранее благодарен.


NailS   (2002-06-15 18:32:00) [1]


> mazepa © (15.06.02 15:45)
> Все понятно... это значит что меня кинули с D6 подсунув
> не Delphi6 a Dermo6...

;) А ты на С++ перейди, там точно получится ;)))))), тебе, как человеку с высшим образованием, это должно быть известно.

2 All,
Сорри за флейм, не сдержался.


SPeller   (2002-06-15 17:22:00) [2]

2 mazepa © (15.06.02 15:45)
Объявляем динамический массив
var dmas: array of byte;
Он имеет нулевую длину, соответственно памяти не "хавает". Затем раздуваем его до 50 Мб
setlength(dmas,50000000);
Делаем с ним всё что надо, а в конце высвобождаем отведённую ему память
setlength(dmas,0);
Вот и всё, всё прекрасно работает и D6 ниразу не ругается. А статический массив будет "хавать" память до тех пор, пока не выйдешь из процедуры, в которой он объявлен. Ты только подумай, если бы не освобождались все переменные всех функций, то что бы тогда было?


mazepa   (2002-06-15 15:45:00) [3]

Все понятно... это значит что меня кинули с D6 подсунув не Delphi6 a Dermo6...
Спасибо за содержательную беседу.


Anatoly Podgoretsky   (2002-06-15 15:40:00) [4]

С динамическом массивом все получается, даже для такой маленькой длниы, а вот статическим у тебя ничего не получится, вдумайся только в понятия статический динамический


mazepa   (2002-06-15 15:36:00) [5]

Не знаю о чем ты там думаешь но не кто не пытается и даже не пробовал пытатся работать таким образом...
Уточняю: если не получатся Setlength(...) для дин.мас. такой длинны то как освободить память от стат.мас. ???


Anatoly Podgoretsky   (2002-06-15 15:28:00) [6]

Так ты что пытаешься со статическим массивом работать как с динамическим? Камиадзе.


mazepa   (2002-06-15 15:07:00) [7]

Ругань компилятора я не помню т.к. нахожусь на работе, где D6 временно был удален. А определение массива я уже приводил (смотри выше)...


Anatoly Podgoretsky   (2002-06-15 14:57:00) [8]

Видимо тебе ответ не нужен, раз ты не приводишь ни определение массива, ни выделение памяти, ни даже ругани компилятора


NailS   (2002-06-15 14:45:00) [9]

Каких ругательств?


mazepa   (2002-06-15 14:34:00) [10]

В данном случае: не проходит без ругательств со стороны D6.


Anatoly Podgoretsky   (2002-06-15 14:30:00) [11]

Трудно сказать, ты же не приводишь потребностей, но одназначно можно сказать, что у других работает.
А как переводится слово "хавать"?


mazepa   (2002-06-15 14:24:00) [12]

Почему то D6 не хавает setlength(buf,50000000) вот в чем весь косяк. Может что то надо сделать перед объявлением длинны?


Anatoly Podgoretsky   (2002-06-15 14:18:00) [13]

Это статический массив, тебе же нужен динамический buf:array of byte; или самому выделять память через GetMem


mazepa   (2002-06-15 14:12:00) [14]

что то типа buf:array[0..50000000] of byte;


Anatoly Podgoretsky   (2002-06-15 13:33:00) [15]

mazepa © (15.06.02 12:29)
Борланд и мировое сообщество с тобой не согласны


VictorT   (2002-06-15 13:30:00) [16]

Я не большой знаток Паскаля, возник вопрос. А можно ли уже в Паскале обьявлять переменные в любом месте программы, как в Си. Просто в Си переменые удаляются, как только уходят из области видимости, как в этом плане в Паскале? Это ведь тоже один из способов решения проблемы.


Malder   (2002-06-15 12:53:00) [17]

mazepa, как ты объявляешь статический массив длиной в 50 Mb ?


MBo   (2002-06-15 12:47:00) [18]

Ей это подвластно


Malder   (2002-06-15 12:45:00) [19]

А как ты объявляешь массив длиной в 50 Mb ?


mazepa   (2002-06-15 12:29:00) [20]

Write to: Anatoly Podgoretsky
Тогда подскажи пожалуйста как установить длинну в 50Мб.
Про setlength можно забыть - это ей не подвластно ???


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо