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

Вниз

динамический массив максимальной длины   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.024 c
1-37181
race1
2002-12-30 12:00
2003.01.13
опять :)


1-37114
CashDi
2003-01-04 13:02
2003.01.13
Статические переменные


1-37176
Beginer1
2002-12-29 19:39
2003.01.13
Диалоги


14-37268
Ketmar
2002-12-22 15:52
2003.01.13
учимся пить %-))


1-37064
Аркадий
2003-01-03 02:38
2003.01.13
помогите