Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.27;
Скачать: CL | DM;

Вниз

Как освободить память от массива   Найти похожие ветки 

 
mazepa ©   (2002-06-15 12:01) [0]

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


 
Anatoly Podgoretsky ©   (2002-06-15 12:10) [1]

Перейти к использованию динамических массивов


 
mazepa ©   (2002-06-15 12:29) [2]

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


 
Malder ©   (2002-06-15 12:45) [3]

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


 
MBo ©   (2002-06-15 12:47) [4]

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


 
Malder ©   (2002-06-15 12:53) [5]

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


 
VictorT ©   (2002-06-15 13:30) [6]

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


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

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


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

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


 
Anatoly Podgoretsky ©   (2002-06-15 14:18) [9]

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


 
mazepa ©   (2002-06-15 14:24) [10]

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


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

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


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

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


 
NailS ©   (2002-06-15 14:45) [13]

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


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

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


 
mazepa ©   (2002-06-15 15:07) [15]

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


 
Anatoly Podgoretsky ©   (2002-06-15 15:28) [16]

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


 
mazepa ©   (2002-06-15 15:36) [17]

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


 
Anatoly Podgoretsky ©   (2002-06-15 15:40) [18]

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


 
mazepa ©   (2002-06-15 15:45) [19]

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


 
SPeller ©   (2002-06-15 17:22) [20]

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


 
NailS ©   (2002-06-15 18:32) [21]


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.06.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
1-88791
TRUP
2002-06-16 13:30
2002.06.27
Как очистить папку HISTORY?


1-88881
zeos
2002-06-14 13:44
2002.06.27
Объединение значений Label ов.


14-89016
allrussia
2002-05-21 09:03
2002.06.27
COBMECTuMOCTb


14-89041
lak_b
2002-05-28 00:25
2002.06.27
аккаунт


14-88986
MBo
2002-05-24 12:03
2002.06.27
Очередная несложная разминка для начинающих ;)