![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 19
|
![]()
Всем привет! Вот столкнулся с очередной проблемой на Паскале. Общаюсь с ним не так давно, но тем не менее, периодически натыкаюсь на его ограничение по размеру памяти. До этого успешно его обходил, поэтому, проблем не было. Но в этот раз обойти не получится, получается либо просто паскаль устарел, либо я чего-то не догоняю. Вот простейший пример, дана таблица чисел, скажем 1000 на 1000, типа byte, чтобы хранить такой массив данных потребуется примерно 1 мб памяти, что значительно больше 64кб сегмента данных. Лазил по различным учебниками в поисках решения, но так его не нашел. Все мои манипуляции с указателями ни к чему не приводили, вылетает ошибка, типа памяти мало и все тут. Подскажите, можно ли использовать всю доступную оперативную память на компьютере при выполнении программ, или все-таки есть ограничения? Вот скажем на данном примере, что тут можно сделать, чтобы в проге все-таки разместился мой массив?
![]() Код:
|
![]() |
![]() |
![]() |
#2 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
![]()
В DOS окружении 640Кб обычной памяти. Это примерно то количество памяти, которое может быть адресуемо единомоментно. Если нужны большие объёмы, надо использовать EMS, XMS, UMB и т. п., они проецируют окна в памяти на разные участки выше мегабайта. Нужно поработать с одним участком — спроецировал окно, работаешь. Нужен другой участок — проецируешь окно на другой участок, работаешь дальше.
Паскаль не обеспечит поддержку на уровне языка. Но в принципе можно. Сейчас, если в 32–битной системе нужно работать с объёмами памяти больше 4 Gb, решение аналогично: окно в памяти проецируется на разные участки большого куска памяти. И, также, как и во времена 16–битных систем, компиляторы никакой специальной поддержки на уровне языка при этом не оказывают. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.02.2009
Сообщений: 19
|
![]()
Вот как раз этой информации мне и не хватало. В книгах ни в одной не встретил, где бы четко было изложено какой потолок памяти в Паскале, пишут, что есть динамическая память и ее можно типа сколько угодно использовать, но примеры ее использования почему-то выше 200 кб не приводят
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.04.2009
Сообщений: 270
|
![]()
Ты....поспешил "ПОСЛАТЬ" ПАСКАЛЬ!!!!!
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
На сколько мне известно, в Win 95,98 этой проблемы нет, а вот XP строго выделяет 640 кб и не дает DOS программе лезть дальше в память.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
switch или что-нибудь типа того | ДядяМиша | PHP | 3 | 30.04.2009 08:17 |
что делать если комп хочет отформатировать карту памяти с информацией? | Александр Катаев | Компьютерное железо | 1 | 14.03.2009 14:11 |
Не хватает практики на C++ | Rembo | Свободное общение | 11 | 04.08.2008 18:36 |
Старый серер перенести на новый, а старый заглушить, при этом не потерять настроек. | Spartak | Помощь студентам | 1 | 28.01.2008 12:07 |
Программка для забивания физ.памяти. Паскаль | NikLik | Свободное общение | 8 | 25.11.2007 22:36 |