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

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

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

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

Распределение памяти. Динамическое выделение памяти
an-1 an-2 ... a2

Выделение памяти, проверка на утечку памяти
Интересуют два вопроса: 1. Правильно ли устроен алгоритм выделения, удаление...

Безуспешное освобождение памяти большого размера
Добрый день! При попытках удаления указателя на память большого размера...

Выделение памяти
Добрый день, такой вопрос. Есть класс, в нем есть динамический массив. string...

Не выделение памяти
По какой причине не работает это программа ? #include<iostream> #include...

Выделение памяти
Часто возникает такая проблема, когда конфигурирую проект как Release...

6
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
05.10.2011, 19:25 #2
выделяйте динамическую память с помощью new (C++), malloc (C)
1
DKOI
24 / 24 / 1
Регистрация: 08.09.2010
Сообщений: 136
05.10.2011, 19:28  [ТС] #3
Тьфу, блин. Точно. Совсем запутался с обертками функции. Просто недавно узнал что конструкция a[x] где х - переменная - просто обертка для new. Вот и сейчас что-то так подумалось. В общем, спасибо
0
bearwoolfs
15 / 15 / 5
Регистрация: 10.01.2011
Сообщений: 275
05.10.2011, 19:48 #4
Не понял что за Обертка ??? Вобще NEW оператор для выделения памяти в динамической области... Наверное адресс на ячейку в памяти будет оберткой для Функции ???
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
05.10.2011, 20:44 #5
bearwoolfs, new - обёртка над malloc, которая в случае чего кидает исключение. Можно вызывать функциональную версию new, а не операторную, тогда возможности несколько расширяются: например, с помощью функциональной версии new, принимающей только размер, можно только выделить память, а вызов конструктора возложить на размещающий new (placement new). Ну или отменить кидание исключений (хотя этого можно добиться и в операторной версии, но как по мне, такой синтаксис - костыль).
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.10.2011, 20:56 #6
silent_1991, Не всегда new обертка над malloc. Про переопределенный оператор new я даже не упоминаю.
0
silent_1991
Эксперт С++
5007 / 3067 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
05.10.2011, 21:25 #7
Цитата Сообщение от ForEveR Посмотреть сообщение
Про переопределенный оператор new я даже не упоминаю.
И правильно, не о нём ведь речь шла))
0
05.10.2011, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 21:25
Привет! Вот еще темы с решениями:

Выделение памяти
Вот кусок кода, класс и функция добавления в список Класс занимает 64 бита, я...

Выделение памяти(С = С++)
Привет. Нужна помощь, в выделении памяти. Есть код на С, нужно перевести его в...

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

Выделение памяти
Всем доброго времени суток! Пытаюсь сделать связанный список на 100кк...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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