Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
hiphone
13 / 13 / 3
Регистрация: 28.01.2012
Сообщений: 544
#1

Не выделяется память - C++

29.07.2016, 18:53. Просмотров 241. Ответов 2
Метки нет (Все метки)

Здравствуйте, пытаюсь выделить память, на одном компьютере работает, на другом нет, возвращает 0x00000000, хотя память имеется в наличии. В чём может быть причина?

C++
1
2
3
size_t size = 1586753967;
    void* b = malloc(size);
    free(b);
Добавлено через 6 минут
errno = ENOMEM, хотя памяти доступно 4,2 ГБ

Добавлено через 2 минуты
Если компилировать под x64, то память выделяется, но это не дело.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2016, 18:53     Не выделяется память
Посмотрите здесь:

Как выделяется память под массив string? C++
C++ Где выделяется память для возвращаемого значения функций?
Выделяется ли память для ссылки? C++
Не выделяется память C++
Не выделяется память. выдаёт ошибку на строке st[m].fam = new char[]; C++
Какую структуру имеет память которая выделяется для роботы программы на С++ C++
C++ Выделяется ли память?
C++ Как выделяется память на стеке и на куче? Когда нужна ручная очистка?
Не выделяется память в динамической памяти C++
Объясните как выделяется память под умные указатели C++
C++ Каким образом выделяется память при инициализации строковой константой указателя
C++ Неправильно выделяется память для массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12887 / 7273 / 810
Регистрация: 27.09.2012
Сообщений: 17,972
Записей в блоге: 2
Завершенные тесты: 1
30.07.2016, 19:13     Не выделяется память #2
Цитата Сообщение от hiphone Посмотреть сообщение
хотя памяти доступно 4,2 ГБ
Вопрос в том, сколько доступно Вашему именно приложению.
Убежденный
Системный программист
Эксперт С++
15107 / 6802 / 1073
Регистрация: 02.05.2013
Сообщений: 11,115
Завершенные тесты: 1
31.07.2016, 01:42     Не выделяется память #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1586753967 - это около полутора гигабайт.
32-битным приложениям доступно около 2 гигабайт.
Менеджеру памяти C трудно найти в памяти непрерывный кусок такого размера,
поэтому функция завершается с ошибкой.

На 64-битной системе поможет включение флажка Enable Large Addresses
(/LARGEADDRESSAWARE) в настройках компоновщика.
Yandex
Объявления
31.07.2016, 01:42     Не выделяется память
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru