Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.06.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.007 c
1-88903
ki11er
2002-06-13 20:58
2002.06.27
Отладка Delphi-Приложений


7-89054
Remal
2002-04-02 12:35
2002.06.27
Как NTвый taskmanager узнает загрузку процессора....


1-88840
shagen
2002-06-17 14:26
2002.06.27
Курсорные форматы


14-89020
Sniffer
2002-05-24 22:46
2002.06.27
Цвет пикселя


1-88948
deymon
2002-06-15 17:34
2002.06.27
загрузить JPEG в EXE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский