Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.026 c
3-36950
vitnt
2002-12-18 11:50
2003.01.13
Interbase 5+6


3-36933
Roma111
2002-12-18 08:49
2003.01.13
Не найдено описание для события с кодом ( 251 )


3-36973
Keymaster
2002-12-16 22:43
2003.01.13
Как читать базу без DBGRID


14-37296
pavelsinicinv
2002-12-23 09:40
2003.01.13
Build


6-37257
RV
2002-11-14 13:44
2003.01.13
Почему WebBrowser1.ReadyState = READYSTATE_COMPLETE раньше,





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский