Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/307: Рейтинг темы: голосов - 307, средняя оценка - 4.98
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1

Ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc

02.11.2014, 15:43. Показов 67180. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!Работаю с графами,и при больших значениях столкнулся с проблемой:ошибка в тесте программы на сайте такова:
C++
1
2
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Почитав,выяснил что что то с памятью не так происходит.
Вопросы таковы,как правильно сделать выделения памяти в массиве(vecor<vector<int>>),в списке смежностей (vector<list<int>>) и собственно очистить память после?
reserve лучше чем resize?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2014, 15:43
Ответы с готовыми решениями:

Ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc выделение памяти
Уважаемые форумчане! Работаю над программой обработки WAV файлов, но возникла такая проблема: при чтении файла возникает ошибка ...

Ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
Есть задача: Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова...

Ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
При выполнении программы, которая миксует функции в которых создаются типовые задачи, вылезает ошибка, в чем проблема?? #include...

9
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2014, 16:01
Стандартные контейнеры из STL специально разработаны так что бы вручную не выдельть и не освобождать память под них. Все это они делают сами.
0
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
02.11.2014, 16:16  [ТС]
Цитата Сообщение от DiffEreD Посмотреть сообщение
Стандартные контейнеры из STL специально разработаны так что бы вручную не выдельть и не освобождать память под них. Все это они делают сами.
То есть по вашему если вручную задать определенный размер памяти и после ненужности ее освободить,это будет менее эффективно и более медленно,чем делать pushback к примеру и не отдать память??
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2014, 16:24
Пример кода в студию, а там будем разшуждать.
0
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
02.11.2014, 16:41  [ТС]
Код очень большой,и задание не из легких,вот кусок когда:
C++
1
2
3
4
5
6
7
8
vector<vector<int>> g1;
....
g1.reserve(n);
for (int i = 0; i < n; ++i) 
g1[i].reserve(n);
...
g1.clear();
...
Корректно ли так?И как лучше?
0
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
02.11.2014, 17:07
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Корректно ли так?
А Вы проверяли? У меня, например, не работает даже для 10 элементов.
1
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2014, 17:25
C++
1
std::vector<std::vector<int> > v(10, std::vector<int>(10));
2
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
02.11.2014, 17:46  [ТС]
Спасибо,тогда остался вопрос про ошибку
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Из за чего она происходит и как с ней бороться?
0
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2014, 21:26
DmitryM5, ознакомся с функцией reserve, в любой книге, где затрагивается STL должно быть про нее написано.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
   std::vector<std::vector<int> > v;
   std::cout << "capacity = " << v.capacity() << ", size = " << v.size() << "\n";
   v.reserve(100);
   // элементов в контейнере нету!!!
   std::cout << "capacity = " << v.capacity() << ", size = " << v.size() << "\n";
 
   //v[0].reserve(n); // элемента здесь еще нет (v.size() == 0) - std::bad_alloc
   v.push_back({1,2,3,4,5});
   v.push_back({6,7,8,9,10});
   // в контейнере 2 элемента:
   std::cout << "capacity = " << v.capacity() << ", size = " << v.size() << "\n";
   v[0].reserve(100); // Ok
 
   return 0;
}
1
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
03.11.2014, 09:18
Цитата Сообщение от DmitryM5 Посмотреть сообщение
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Обычно это исключение бросается когда не хватает памяти для выделения. Бросать его может new/new [], аллокатор, контейнер или еще кто-нибудь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2014, 09:18
Помогаю со студенческими работами здесь

Ошибка terminate called after throwing an instance of 'std::bad_alloc' при работе с типом std::string
Добрый вечер, при работе функции возникает ошибка terminate called after throwing an instance of 'std::bad_alloc' what(): ...

Ошибка: terminate called after throwing an instance of 'std::bad_alloc'
Доброго времени суток В сурсе #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt; #include &lt;array&gt; #include...

Не понимаю из-за чего выскакивает: terminate called after throwing instance of std bad_alloc
Не понимаю из-за чего выскакивает ошибка при компиляции: terminate called after throwing instance of std bad_alloc. Буду благодарен, если...

Runtime ошибка - terminate called after throwing an instance of 'std::out_of_range'
Пишу что-то вроде компилятора. Так как никакой литературы по созданию компилятора не читал в моём коде появляються кучи Костылей и...

Ошибка при повторном запуске: terminate called after throwing an instance of 'std::ios_base::failure'
Здравствуйте, вот этот кусок кода(дан ниже) при повторном запуске программы выдает ошибку: terminate called after throwing an instance of...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru