Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Вниздинамический массив максимальной длины Найти похожие ветки
← →
AMC (2002-12-26 20:35) [0]Нужно создать динамический массив максимальной длины, например 100000000000000000, но компилятор выдает ошибку. Как быть? Помогите пожалуста.
← →
gsu (2002-12-26 20:39) [1]var
a: array of integer;
begin
SetLength(a, MAXDWORD);
end;
← →
TTCustomDelphiMaster (2002-12-26 20:41) [2]Вышей программе для данных выделяется 2 Гб памяти. Т.е. теоретически можно создать array of bayt длинной около 2199023255552
← →
gsu (2002-12-26 20:42) [3]Зависит от разрядности, может он на суперэвм (-:|~
← →
TTCustomDelphiMaster (2002-12-26 20:44) [4]Зависит от операционной системы
← →
gsu (2002-12-26 20:45) [5]во вторую очередь
← →
Anatoly Podgoretsky (2002-12-26 20:50) [6]Дельфи работает только на Wintel
← →
gsu (2002-12-26 20:52) [7]Про D ничего не говорилось (-:|~
← →
TTCustomDelphiMaster (2002-12-26 20:55) [8]
> Про D ничего не говорилось (-:|~
динамический массив максимальной длины [ D6, Win95/98, WinME, NT4, Win2k, WinXP]
← →
gsu (2002-12-26 20:57) [9]Так множество ж ограниченно, вот он и кликал на все что ни попадя (-:|~
← →
Донской (2002-12-26 21:04) [10]А как насчет создания динамического массива с помощью :
...
new(p);
p^.prev:=p1;
p1^.next:=p;
p^.next:=nil;
p1:=p;
...
и есть ли ограничени едлины такой цепочки, или тоже 2Гб?
← →
Morfein (2002-12-26 21:10) [11]Длинна массива не ограничена двумя гигабайтами, так как можно получить память в системной области, которая имеет адреса больше 0x80000000... например, создать memory mapped file...
← →
TTCustomDelphiMaster (2002-12-26 21:10) [12]тоже 2
← →
TTCustomDelphiMaster (2002-12-26 21:14) [13]Или в файл на винт писать
← →
Anatoly Podgoretsky (2002-12-26 21:20) [14]gsu © (26.12.02 20:52)
Если следовать этой точке зрения, то ветку придется отравить в Потрепаться, так как здесь мы обсуждаем программирование в Дельфи.
TTCustomDelphiMaster © (26.12.02 21:14)
Файлы и базы отдельный разговор и файлы имеют теже самые ограничения (2/4)
Интересно другое, на что я пока не могу сказать одназначно - это точкаНЕТ
← →
TTCustomDelphiMaster (2002-12-26 21:26) [15]
> Интересно другое, на что я пока не могу сказать одназначно
> - это точкаНЕТ
А как это связано с темой?
← →
ION T (2002-12-26 21:31) [16]> Anatoly Podgoretsky © (26.12.02 21:20)
Файлы имеют ограничение 4:)
> Morfein © (26.12.02 21:10)
Нда, но вот больше 0xffffffff не получится...те самые 4..
← →
Morfein (2002-12-26 21:49) [17]А про четыре никто и не говорит....
← →
Anatoly Podgoretsky (2002-12-26 22:01) [18]TTCustomDelphiMaster © (26.12.02 21:26)
Напрямую, эта технология не завязана на Wintel, так что теоритически там не должно быть этого предела
← →
Anatoly Podgoretsky (2002-12-26 22:03) [19]ION T © (26.12.02 21:31)
Хуже все операции завязаны на MaxInt
← →
Донской (2002-12-26 22:35) [20]Вот... пока вы думали, у меня свободная виртуальная память заканчивается, а приложение выдало "не хватает пямяти"
Ясно.....
← →
HelloWordAND (2002-12-27 00:50) [21]Так че у человека компилятор ругается, если почти нет предела (2Гб). Что то тыт не так.
← →
HelloWordAND (2002-12-27 00:51) [22]У меня тоже не получилось. Мне тоже стало очень интересно
← →
ION T (2002-12-27 00:56) [23]> Хуже все операции завязаны на MaxInt
А кто был ламой шо это придумал? Выходит файл может занимать, допустим, -1.5ГБ? Ёлки, а я вот уже новый винчак покупать намылилси;))
> HelloWordAND (27.12.02 00:50)
Два миллиарда значительно меньше его сотни квадриллионов...:)
← →
Модж (2002-12-27 01:00) [24]2 Файлы имеют ограничение 4:)
Ну, это сказки. Для Fat32 - да, но ФАТ32 отнюдь не единая возможная файл. система для виндюков
← →
ION T (2002-12-27 01:04) [25]> Модж (27.12.02 01:00)
Приведи пример хотя-бы 64 битной распространенной файловой системы....да еще и для винды...
← →
KSergey (2002-12-27 07:42) [26]Извините, а может все же не надо таких массивов, а? Да к тому же не уточнено: 100000000000000000 чего? Элементов? Какого размера? И все же максимально доступной длины или длиной в 100000000000000000? Это разные вещи, на сколько я понимаю...
← →
gsu (2002-12-27 14:12) [27]Насколько я знаю 2^32 - это 4 Гига, т.е всего сколько может быть адресного пространства у процесса при такой разрадности.
ОСы виндовые выдают ~ 2 Гига процессу и 2 себе (dll, ...)
У AMC 100000000000000000 - это намного боле максимально положенного (MAXDWORD или MaxInt) отсюда и ошибка.
Вроде нас так учили (-:|~
← →
Моджахед (2003-01-03 03:09) [28]2 Приведи пример хотя-бы 64 битной распространенной файловой системы....да еще и для винды...
Если тебя очень интересует размер файла больше 4Гб для ВИНДОВ, use ntfs!
← →
Alex Konshin (2003-01-03 03:36) [29]Ну не верю я, что действительно нужен массив такого размера!
Только представьте, сколько он заполняться будет.
Скорее всего нужен разреженный массив, тогда нужно просто что-то вроде hashtable с int64 ключом.
Короче, человек явно не может спроектировать алгоритм.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.009 c