![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 27.10.2010
Сообщений: 14
|
![]()
Решается система из 6 дифуров, результаты записываются в динамический массив TResarray=array of array of extended. Решение прогоняется в цикле 3 раза для различных исходных данных и результаты записываются в массив типа Tresultat=array [0..2] of TResarray. Проблема заключается в переполнении массива out of memory при увеличении шага до 1000000.Программа начинает дико жрать оперативу. На утечку проверял, вроде нет ее. Каким образом можно избежать переполнения?
Затем массив типа TResultat необходимо передать в 3 stringgrid, это делается с помощью указателей или как-то иначе? Код:
Последний раз редактировалось Stilet; 27.10.2010 в 16:58. |
![]() |
![]() |
![]() |
#2 |
Игрок
Форумчанин
Регистрация: 29.10.2006
Сообщений: 367
|
![]()
если честно не вникал в код, но раз уж не хватает памяти - запроси побольше. Или в настройках проекта размер стека увеличь или в начале проги напиши {$M 10000000} вроде так
Жизнь всегда игра. Но смерть - не всегда поражение.
#define true (Math.random()>0.5) //Удачной отладки ![]() |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
![]()
а через F7 не отследить? да и темку не правильно оформили
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
1'000'000 * 10 * 8 = 80'000'000 байт или 80 Мб.
Вроде должно хватать. Ещё в программе SetLength есть? Для TResult, например?.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.10.2010
Сообщений: 14
|
![]()
получается, что массив результатов состоит из 3 массивов размером (7 столбцов на 10000000 строк) элемент которых extended=10байт, следовательно занимает 3*7*10.000.000*10байт=2.100.000.000 байт=1,96Гб. Какой максимальный объем массива может быть для 32-битной оси. И можно ли использовать что-то другое, чтобы избавиться от ограничений по занимаемой памяти и не грузить это в оперативную память? Место под массив выделяется из оперативной памяти ведь так?
|
![]() |
![]() |
![]() |
#6 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
Ещё неплохо бы тег CODE юзать.А то нечитабельно.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 27.10.2010
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
скорее всего дело в том что массив выделяется в куче. надо использовать все пространство процесса. или же скидывать лишнее в файл . а вообще вопрос. вам нужен Extended? или можно взять поменьше тип?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 27.10.2010
Сообщений: 14
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а вы как вычисляете. сразу по максимуму? все данные в память?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не разбираюсь динамическом программировании. | sirex | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.09.2010 21:58 |
Где мой кося в динамическом массиве? | Utkin | Общие вопросы Delphi | 9 | 09.07.2010 15:35 |
C++ указатель в динамическом двумерном масие | TheZvir | Помощь студентам | 3 | 26.03.2010 00:03 |
Переопределение события OnClick в динамическом объекте-компоненте | CyberJohn | Общие вопросы Delphi | 8 | 06.01.2010 15:56 |
Количество элементов в динамическом массиве | lytkin | Общие вопросы Delphi | 8 | 21.02.2007 14:50 |