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