Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.10.2011, 19:25. Просмотров 1070. Ответов 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++):

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

Выделение памяти, проверка на утечку памяти - C++
Интересуют два вопроса: 1. Правильно ли устроен алгоритм выделения, удаление и запись ячейки памяти? Может быть, есть более простые...

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

Выделение памяти - C++
Какая разница между выделением памяти функциями malloc, calloc, realloc и оператором new? И как изменить размер выделенной памяти без...

Выделение памяти - C++
Во время выполнения программы после ввода нескольких символов выводит ошибку: double free or corruption(out): 0x0000000001157010 ***...

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

6
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 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 / 1
Регистрация: 10.01.2011
Сообщений: 275
05.10.2011, 19:48 #4
Не понял что за Обертка ??? Вобще NEW оператор для выделения памяти в динамической области... Наверное адресс на ячейку в памяти будет оберткой для Функции ???
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
05.10.2011, 20:44 #5
bearwoolfs, new - обёртка над malloc, которая в случае чего кидает исключение. Можно вызывать функциональную версию new, а не операторную, тогда возможности несколько расширяются: например, с помощью функциональной версии new, принимающей только размер, можно только выделить память, а вызов конструктора возложить на размещающий new (placement new). Ну или отменить кидание исключений (хотя этого можно добиться и в операторной версии, но как по мне, такой синтаксис - костыль).
0
ForEveR
В астрале
Эксперт С++
7985 / 4744 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.10.2011, 20:56 #6
silent_1991, Не всегда new обертка над malloc. Про переопределенный оператор new я даже не упоминаю.
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

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

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

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

выделение памяти - C++
Здравствуйте, помогите пожалуйста исправить ошибку, это лишь малая часть кода. В задании: поле name должно быть динамическим: char...


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

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

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