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

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

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

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

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

Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy - C++
Бывает ли на практике такое, что код #define size 1000; // some value int x, y; /* ... */ memcpy(y, x, (size + 1) * sizeof(int)); ...

Как узнать вылетела ли такая ошибка? - C++
День всем добрый! У моей программы проблемс. Иногда случается, что пользователю требуются библиотеки из пакета Visual C++ Redist., в...

что за ошибка такая? не могу исправить.. - C++
1>d:\мусор\qwerty\qwerty\qwertyu.cpp(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int ...

Почему вылезает такая ошибка 'sum' cannot be used as a function? - C++
Почему вылезает такая ошибка? 'sum' cannot be used as a function #include <stdlib.h> #include <iostream> #include <windows.h> ...

Lvalue required почему высвечивается такая ошибка? - C++
#include <stdio.h> #include <conio.h> #include <iostream.h> void CutLeft(int x_min,int y_min,int x_max,int y_max, const int...

Почему выводится такая ошибка? Вот отрывок кода: - C++
case 1: FILE *table; table = fopen_s(&table, "table.xls", "w"); fprintf(table, " № \t x \t f1 \t f2 \t \n"); for (i = 1; i < n...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
.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
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
23.04.2011, 13:09 #4
Исключение при неудачной попытке выделить память.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
23.04.2011, 13:15 #5
koka3000, ну а код программы - большой секрет? Раз выдаёт ошибку - значит она есть. А где именно - смотреть нужно...
koka3000
11 / 11 / 3
Регистрация: 02.02.2011
Сообщений: 211
23.04.2011, 15:11  [ТС] #6
Цитата Сообщение от easybudda Посмотреть сообщение
koka3000, ну а код программы - большой секрет? Раз выдаёт ошибку - значит она есть. А где именно - смотреть нужно...

Ну это сервер игрушки, не думаю что кто-то будет бесплатно в ее коде искать ошибку)
Мне главное знать примерно из-за какой неверной операции могло такое произойти, и я сам буду искать эту ошибку.
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
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
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
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 штуки )) Сейчас буду тестировать и о результатах напишу.
ArtTemiy
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 2
22.06.2016, 23:15 #11
У меня была такая ошибка из-за открытия несуществующего файла.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2016, 23:15
Привет! Вот еще темы с ответами:

От чего могут возникнуть неполадки с jQuery библиотекой? - jQuery
Добрый день уважаемые. Столкнулся с непонятной проблемой, код подключаемый после библиотеки jQuery отрабатывается. (Слайдеры работают), но...

СБилдер6. От чего такая ошибка: [Linker Error] Unresolved external 'Tovar::Show()' referenced from E: - C++ Builder
Я даже при создании проэкта снимал галочки use vcl и multi threaded. вот код если интересно может там ошибка: Класс Tovar.h: #ifndef...

Как пропустить часть кода, в которой может возникнуть ошибка? - C#
Здравствуйте! При запуске программы всё работает нормально - никаких ошибок нету. Однако в некоторых случаях, если вводить в TextBox...

При каких обстоятельствах может возникнуть ошибка 'Runtime error '9': Subscript out of range' - VBA
Sub СозданиеДиаграммы() Dim n As Integer n = NFirstEmptyStr("Выполнение услуг") - 1 s = LTrim(Str$(n)) If Range("A"...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.06.2016, 23:15
Ответ Создать тему
Опции темы

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