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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.95
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
#1

Из-за чего могла возникнуть такая ошибка? - C++

22.04.2011, 19:19. Просмотров 5396. Ответов 10
Метки нет (Все метки)

Через некоторое время работы моя программа падает с такой ошибкой:
C++
1
terminate called after throwing an instance of 'std::bad_alloc'   what():  std::bad_alloc
Можете подсказать, чтобы это могло быть и в какую сторону нужно капать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2011, 19:19     Из-за чего могла возникнуть такая ошибка?
Посмотрите здесь:

что за ошибка такая? не могу исправить.. C++
Lvalue required почему высвечивается такая ошибка? C++
Может ли вообще на практике возникнуть ситуация, когда определенный класс следует указывать как друго самого себя? C++
Не могу понять из-за чего ошибка C++
Ошибка в коде.не пойму из-за чего C++
Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy C++
Из-за чего ошибка? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
22.04.2011, 19:22     Из-за чего могла возникнуть такая ошибка? #2
вроде это ошибка связанна с памятью
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
23.04.2011, 12:54  [ТС]     Из-за чего могла возникнуть такая ошибка? #3
$ free -m
C++
1
2
                  total       used      free
Mem:           512        170        341
Я тоже думал что из-за памяти, но вот тут состояние памяти.

Добавлено через 17 минут
#!/bin/bash

while true; do
free -m >> free_m
sleep 1
done

Возможно память забивается за секунду, и я не успеваю этого увидеть, и сервер падает!
Сейчас проверим...

Добавлено через 8 минут
Странно. Что-то очень долго не падает. Будем ждать...

Добавлено через 17 часов 2 минуты
Только перестал следить за памятью, мин через 3 упала прога!
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
23.04.2011, 13:09     Из-за чего могла возникнуть такая ошибка? #4
Исключение при неудачной попытке выделить память.
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
23.04.2011, 13:15     Из-за чего могла возникнуть такая ошибка? #5
koka3000, ну а код программы - большой секрет? Раз выдаёт ошибку - значит она есть. А где именно - смотреть нужно...
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
23.04.2011, 15:11  [ТС]     Из-за чего могла возникнуть такая ошибка? #6
Цитата Сообщение от easybudda Посмотреть сообщение
koka3000, ну а код программы - большой секрет? Раз выдаёт ошибку - значит она есть. А где именно - смотреть нужно...

Ну это сервер игрушки, не думаю что кто-то будет бесплатно в ее коде искать ошибку)
Мне главное знать примерно из-за какой неверной операции могло такое произойти, и я сам буду искать эту ошибку.
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
23.04.2011, 15:17     Из-за чего могла возникнуть такая ошибка? #7
Цитата Сообщение от koka3000 Посмотреть сообщение
из-за какой неверной операции могло такое произойти
new или new[]
bad_alloc
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
23.04.2011, 15:22  [ТС]     Из-за чего могла возникнуть такая ошибка? #8
ОП не хватило или что-то другое?
Вроде бы все время как минимум 300мб свободно.
kazak
3031 / 2352 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
23.04.2011, 15:27     Из-за чего могла возникнуть такая ошибка? #9
Всякое может быть, тут нужно использовать try...catch для каждого вызова new, тогда можно будет узнать причину, вызвав метод what() (по ссылке выше можно посмотреть пример) и попутно сделать вывод где конкретно в программе произошло исключение.
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
01.05.2011, 20:05  [ТС]     Из-за чего могла возникнуть такая ошибка? #10
Возле каждого new поставил try...catсh. И если не хочет выделить память, вывод в файл номера try...catсh, чтобы потом найти где именно ошибка вышла. Всего таких new было 123 штуки )) Сейчас буду тестировать и о результатах напишу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2016, 23:15     Из-за чего могла возникнуть такая ошибка?
Еще ссылки по теме:

C++ ошибка не понимаю из-за чего
Выползает такая ошибка "test.exe вызвал срабатывание точки останова." C++
C++ Почему вылезает такая ошибка 'sum' cannot be used as a function?
C++ Ошибка в учебнике или я чего то не понимаю
C++ Почему выводится такая ошибка? Вот отрывок кода:

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

Или воспользуйтесь поиском по форуму:
ArtTemiy
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 2
22.06.2016, 23:15     Из-за чего могла возникнуть такая ошибка? #11
У меня была такая ошибка из-за открытия несуществующего файла.
Yandex
Объявления
22.06.2016, 23:15     Из-за чего могла возникнуть такая ошибка?
Ответ Создать тему
Опции темы

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