С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/64: Рейтинг темы: голосов - 64, средняя оценка - 4.66
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1

Ограничение памяти

14.01.2014, 20:41. Показов 12579. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Столкнулся со следующим программа при обработке большого числа данных начинает вылетать с ошибкой:
"Программа "[1092] RotorGrid.exe: Управляемый (v4.0.30319)" завершилась с кодом -2147483645 (0x80000003)."
Компилировал под x64. Если уменьшить число данных (точек массива) то программа отрабатывает правильно! Точки выхода (ошибки как таковой нет) прирваться может в разных местах даже когда остановлено в отладчике.
Догадываюсь, что 2147483645 как то напоминает 2147483648=2*1024*1024*1024=2Гб. Но как убрать это ограничение? Если это оно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2014, 20:41
Ответы с готовыми решениями:

Ограничение памяти до 64 мб
Здравствуйте! У меня есть код, который делает некоторые манипуляции с 2мя текстовыми файлами. Нужно сделать так, чтобы память, которая...

Ограничение по памяти
Добрый день. Столкнулся с такой проблемой. В программе открываю файл, в байтовом формате, и хочу загрузить его в одномерный динамический...

Builder 6 ограничение памяти
Добрый день. Столкнулся с такой проблемой: программа загружает изображения в массив TImage. Сами изображения - jpg, но в TImage они...

25
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
14.01.2014, 21:15
0x80000003 - это STATUS_BREAKPOINT. Т.е. сработала точка останова.
Видимо, где-то ошибка, вот и вылетает. А память не при чем...
1
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
15.01.2014, 01:07
Цитата Сообщение от Убежденный Посмотреть сообщение
Т.е. сработала точка останова.
Видимо, где-то ошибка, вот и вылетает. А память не при чем...
а может и причем
стек переполняется и два варианта
или отладчик вызвал int 3
или возврат из функции пришелся на 0xCC
mustimur,
память как выделяешь?
int buf[xxx] ???
попробуй
int *buf=new[xxx]
1
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
15.01.2014, 07:30  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
память как выделяешь?
int buf[xxx] ???
попробуй
int *buf=new[xxx]
В том то и дело что память выделяется динамически int *buf=new[xxx]...
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
15.01.2014, 08:57
Цитата Сообщение от mustimur Посмотреть сообщение
Компилировал под x64.
Цитата Сообщение от mustimur Посмотреть сообщение
Но как убрать это ограничение?
Попробуйте добавить ключ /LARGEADDRESSAWARE
но не знаю поможет ли
1
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
15.01.2014, 10:31  [ТС]
Ставил не помогало, помогло другое:
заменил int *buf=new[xxx] на int *buf=(int*)*malloc(sizeof(int)*xxx).

Извечный вопрос new[]/delete[] vs malloc/free..
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
15.01.2014, 16:13
Цитата Сообщение от mustimur Посмотреть сообщение
Ставил не помогало, помогло другое:
я уже писал, но сообщение не дошло, лови исключения
может тебе менеджер не может памяти больше дать
1
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
15.01.2014, 18:41  [ТС]
Спасибо за ответы
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
15.01.2014, 22:44
mustimur, проще всего привести участок кода выделяющий память и раз уж она алокается динамически то приведи часть кода отвечающую за инициализацю переменной с размером массива.

Ниже симпл эксзампл по отлову ексепшина на выделение памяти
http://codepad.org/rDs2LP1S
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main()
{
    int * arr = 0;
    try
    {
        arr = new int[1000000000];
    }
    catch(bad_alloc &ba)
    {
        cout<<ba.what()<<endl;
    }
    return 0;
}
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
17.01.2014, 22:38
-=ЮрА=- подскажи пожалуйста, а почему у меня при компиляции выскакивает ошибка?????? Заранее огоромное спасибо!!!!
Миниатюры
Ограничение памяти  
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
17.01.2014, 22:55
Цитата Сообщение от isaak Посмотреть сообщение
подскажи пожалуйста, а почему у меня при компиляции выскакивает ошибка??????
ну он же тебе прямо написал "размер не может быть больше......."
интересно куды ты стока памяти выделяш?
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
17.01.2014, 23:34
isaak, в коде был try-catch болк назначение которого перехватить програмное исключение которое возникает в лучае ошибки выделения памяти, результатом работы алгоритма должна стать надпись в консоле bad_alloc в случае если заказали объём памяти который слишком велик
1
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
17.01.2014, 23:58
-=ЮрА=-,
по моему его компилятор не пускает
т.е до выполнения, а тем паче до исключений, дело не доходит
может компилятор 32 битный? по крайней мере компилирует под 32 бита, а это компилятору и не нравится
1
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
18.01.2014, 00:02  [ТС]
Цитата Сообщение от isaak Посмотреть сообщение
-=ЮрА=- подскажи пожалуйста, а почему у меня при компиляции выскакивает ошибка?????? Заранее огоромное спасибо!!!!
Ты компилируешь под win32 а там поумолчанию стоит LARGEADDRESSAWARENO то есть не возможно выделить более 2 Гб, а ты 4 просишь. Посмотри второй совет. Я думаю в этом беда
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
18.01.2014, 00:05
Цитата Сообщение от ValeryS Посмотреть сообщение
-=ЮрА=-,
по моему его компилятор не пускает
т.е до выполнения, а тем паче до исключений, дело не доходит
может компилятор 32 битный? по крайней мере компилирует под 32 бита, а это компилятору и не нравится
- у меня имеется БОРТ с двумя осями ХРюша 7-ка х86 и Борт х64 с 7-кой и 8-кой + виртуалка дебиана и Убунты. Так вот если не химичить то всё работает (я об бэдаллоке)
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
18.01.2014, 00:08
-=ЮрА=-, извини, не понял
причем здесь твое железо
у isaak, не компилится а на скриншоте, у него, явно видно win32
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
18.01.2014, 00:10
Валер, если ведём речь о студии то у неё "свои взягляды на кидание ексепшинов", на скрине как допилить до студийного варианта
Миниатюры
Ограничение памяти  
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
18.01.2014, 00:19
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Валер, если ведём речь о студии
о ней родной
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
свои взягляды на кидание ексепшинов"
так до кидания дело не доходит
Цитата Сообщение от isaak Посмотреть сообщение
у меня при компиляции выскакивает ошибка
вот я и предположил что компилятор видя такой криминал, выделение 4 гигабайт(чуть меньше лень пересчитывать), просто тормознул компиляцию

У тебя на скриншоте 6?
давно просто не работал
и видать она спокойно скомпилировала
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
18.01.2014, 00:21
mustimur, хотите работать с большими массивами на x64 ?
Используйте файлы, отображаемые в память. Будете упираться только в
объем файла подкачки и ограничения адресного пространства на x64.
Выделить 4GB и больше при таком раскладе - пустяковое дело.
0
320 / 225 / 74
Регистрация: 22.11.2013
Сообщений: 867
Записей в блоге: 1
18.01.2014, 00:30  [ТС]
Цитата Сообщение от Убежденный Посмотреть сообщение
mustimur, хотите работать с большими массивами на x64 ?
Используйте файлы, отображаемые в память. Будете упираться только в
объем файла подкачки и ограничения адресного пространства на x64.
Выделить 4GB и больше при таком раскладе - пустяковое дело.
а можно по подробнее, как это сделать? Я с ними еще сталкивался. Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2014, 00:30
Помогаю со студенческими работами здесь

Ограничение по времени и памяти
Здравствуйте. Мне нужно из под одной программы запускать другую с ограничениями по времени и памяти. Если вторая программа превысит лимит,...

Ограничение доступа к памяти
Доброго времени суток. Нужно ограничить доступ программе к памяти с помощью работы с реестром. Не очень понимаю, в каком именно направлении...

Ограничение лимита оперативной памяти
Здравствуйте. У меня есть сервер на Debain,на нем стоит игровой хостинг. Каждый пользователь хостинга состоит в определенной группе. Вопрос...

Разгон памяти, ограничение материнки
Сборка на am4/ В характеристиках материнки максимальная частота памяти 3200 МГц. Значит память выше 3200 гнать нет смысла?

Ограничение объёма оперативной памяти
Добрый день господа форумчане! Проблема известная, есть ноутбук установлено 4Гб (3,45 доступно) ОСь x64, Не каких галочек нет с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru