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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
#1

Выделение большого объема памяти - C++

05.10.2011, 19:25. Просмотров 1048. Ответов 6
Метки нет (Все метки)

Надо выделить 250,000,000 байт. Делаю
C++
1
char m[250000001];
Вылетает с ошибкой сегментации (SIGSEGV). Система - Arch linux, компилятор - g++. Подскажите, как справиться с такой бедой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 19:25     Выделение большого объема памяти
Посмотрите здесь:

Безуспешное освобождение памяти большого размера - C++
Добрый день! При попытках удаления указателя на память большого размера (грубо, свыше 50 МБ), программа вылетает. Т.е. при...

Выделение памяти - C++
Всем доброго времени суток! Пытаюсь сделать связанный список на 100кк элементов, но не выделив памяти и под половину, программа жрёт 4...

Выделение памяти - C++
Добрый вечер. Немогу никак понять некоторые тонкости выделения памяти. Во первых: на что указывает указатель, при записи char*...

Выделение памяти - C++
Платформа и компилятор x64. Установлено 64Gb ОЗУ, 60Gb из них откусил SQL Server. Пытаюсь сделать следующее: struct Dictionary { ...

Выделение памяти - C++
Нубский вопрос, но не могу до конца разобраться. Допустим, есть простое определение переменной: int ival = 1024; Когда и как...

Выделение памяти - C++
Доброго всем вечера. В книжке нашел задание: определить класс, представляющий стек. Сделал так, что при заполнении всего стека,...

выделение памяти - C++
есть класс множество. необходимо создать класс "правило", одним из методов которого является добавление множества к соответствующему списку...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 19:25     Выделение большого объема памяти #2
выделяйте динамическую память с помощью new (C++), malloc (C)
DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
05.10.2011, 19:28  [ТС]     Выделение большого объема памяти #3
Тьфу, блин. Точно. Совсем запутался с обертками функции. Просто недавно узнал что конструкция a[x] где х - переменная - просто обертка для new. Вот и сейчас что-то так подумалось. В общем, спасибо
bearwoolfs
15 / 15 / 1
Регистрация: 10.01.2011
Сообщений: 275
05.10.2011, 19:48     Выделение большого объема памяти #4
Не понял что за Обертка ??? Вобще NEW оператор для выделения памяти в динамической области... Наверное адресс на ячейку в памяти будет оберткой для Функции ???
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.10.2011, 20:44     Выделение большого объема памяти #5
bearwoolfs, new - обёртка над malloc, которая в случае чего кидает исключение. Можно вызывать функциональную версию new, а не операторную, тогда возможности несколько расширяются: например, с помощью функциональной версии new, принимающей только размер, можно только выделить память, а вызов конструктора возложить на размещающий new (placement new). Ну или отменить кидание исключений (хотя этого можно добиться и в операторной версии, но как по мне, такой синтаксис - костыль).
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.10.2011, 20:56     Выделение большого объема памяти #6
silent_1991, Не всегда new обертка над malloc. Про переопределенный оператор new я даже не упоминаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 21:25     Выделение большого объема памяти
Еще ссылки по теме:

Выделение памяти - C++
Вот кусок кода, класс и функция добавления в список Класс занимает 64 бита, я добавляю 10 элементов в список - 640 бит Потом отнимаю...

Выделение памяти (new) - C++
Наткнулся на пример где делают непонятные мне выделения памяти с помощью new X* pi = new X; X* p2 = new X ; X* рЗ = new (&buffer )...

Выделение памяти - C++
Доброго времени суток. Чтобы выделить память под двумерный массив в такой форме: //n - переменная, M - константа arr = new double...

Выделение памяти - C++
Здравствуйте! #include<iostream> int main() { int *mass = new int ; int *mass2 = new int ; std::cout << (unsigned int)mass <<...

Выделение памяти - C++
Часто возникает такая проблема, когда конфигурирую проект как Release происходит ошибка выделения памяти (при вызывании new), например...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.10.2011, 21:25     Выделение большого объема памяти #7
Цитата Сообщение от ForEveR Посмотреть сообщение
Про переопределенный оператор new я даже не упоминаю.
И правильно, не о нём ведь речь шла))
Yandex
Объявления
05.10.2011, 21:25     Выделение большого объема памяти
Ответ Создать тему
Опции темы

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