0 / 0 / 0
Регистрация: 20.01.2019
Сообщений: 12
1

Ошибка terminate called after throwing an instance of 'std::bad_alloc' при работе с типом std::string

17.03.2019, 20:03. Показов 1848. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый вечер, при работе функции возникает ошибка

Bash
1
2
3
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)
Возникает она только когда переменная tmpIndivi равна mutStr в строке #19

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
void mutation(std::string &mutStr, int &mutRate)
{
 
    int randomNumber = rand();
    int mutOrNot = (randomNumber % 100);
 
    std::string tmpIndivi;
 
    if(mutOrNot < mutRate)
    {
        tmpIndivi = mutStr;
        std::cout << "**********************************" << std::endl;
        std::cout << "Before mutation individ: " << mutStr << std::endl;
        int tmpSize = tmpIndivi.size();
        int randomFlag = (randomNumber % tmpSize);
        randomFlag -= 1;
        tmpIndivi[randomFlag] = randPoint();
        std::cout << "tmpIndivi: " << tmpIndivi << std::endl;
        if(tmpIndivi == mutStr)
        {
            std::cout << "fail mut" << std::endl;
            std::cout << "**********************************" << std::endl;
        } else
        {
            mutStr = tmpIndivi;
            std::cout << "After mutation individ:  " << mutStr << std::endl;
            std::cout << "**********************************" << std::endl;
        }
    }
}
C++
1
2
3
4
5
6
7
8
9
10
char randPoint() {
 
    char arrPoint[5] = {'A', 'B', 'C', 'D', 'E'};
 
    int randomNumber = rand();
    int rndPoint = (randomNumber % 5);
 
    return arrPoint[rndPoint];
 
}
0
Лучшие ответы (1)
17.03.2019, 20:03
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2019, 20:03
Ответы с готовыми решениями:

Ошибка 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
При выполнении программы, которая миксует функции в которых создаются типовые задачи, вылезает ошибка, в чем проблема?? #include...

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

2
Модератор
Эксперт С++
 Аватар для zss
13730 / 10926 / 6482
Регистрация: 18.12.2011
Сообщений: 29,161
17.03.2019, 20:32 2
Лучший ответ Сообщение было отмечено kavars как решение

Решение

Цитата Сообщение от kavars Посмотреть сообщение
int randomFlag = (randomNumber % tmpSize);
randomFlag -= 1;
значит randomFlag может быть равным -1
тогда
Цитата Сообщение от kavars Посмотреть сообщение
tmpIndivi[randomFlag] = randPoint();
будет ошибкой
1
0 / 0 / 0
Регистрация: 20.01.2019
Сообщений: 12
17.03.2019, 20:47  [ТС] 3
zss, спасибо вам большое, долго сидел думал над ошибкой, а она оказалась очень просто решаемой
0
17.03.2019, 20:47
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2019, 20:47
Помогаю со студенческими работами здесь

Ошибка 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'
Доброго времени суток В сурсе #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. Буду благодарен, если...

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

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Исследование байт-кода Python: подключаем дизассемблер
stackOverflow 19.02.2025
Многие знают, что Python - интерпретируемый язык, но мало кто задумывается о том, что происходит между написанием кода и его выполнением. На самом деле Python использует промежуточное представление. . .
Исследование байт-кода Python: компиляторы против интерпретаторов
stackOverflow 19.02.2025
Понимание байт-кода Python - основополагающий аспект для разработчиков, стремящихся глубже понять внутренние механизмы языка и оптимизировать производительность своих программ. Байт-код представляет. . .
Comprehensions в Python - что это такое?
stackOverflow 19.02.2025
Когда речь заходит о Python, одной из его самых красивых и мощных возможностей являются списковые включения или comprehensions. Это особые синтаксические конструкции, позволяющие создавать новые. . .
Python правда такой медленный? Развенчиваем миф о медлительности
stackOverflow 19.02.2025
Когда речь заходит о выборе языка программирования для нового проекта, вопрос производительности часто становится одним из ключевых факторов. Python, несмотря на свою популярность и простоту. . .
Динамические формы в Flask
stackOverflow 19.02.2025
Работа с веб-формами часто требует гибкости в отношении количества полей, которые пользователь может заполнить. Представьте ситуацию, когда вам нужно создать форму для ввода контактных данных, где у. . .
Обнаружение объектов в реальном времени на Raspberry Pi с OpenCV и Movidius NCS
stackOverflow 19.02.2025
Технология обнаружения объектов в реальном времени становится все более востребованной в различных областях - от систем безопасности до автономных транспортных средств. Особый интерес представляет. . .
где chromium хранит пароли и как их обнулить в пожарном варианте
jigi33 19.02.2025
Where is the chromium browser stores passwords for a sites где chromium-подобный браузер хранит пароли и как их обнулить в пожарном варианте (see screenshot)
howto get access to external internet resources with kinit
jigi33 19.02.2025
Решение проблемы с необходимостью доп. авторизации по Керберос для автоотработки аутентификации на прокси-сервер (see screenshot)
Отслеживание автомобилей и определение скорости с OpenCV и Python на Raspberry Pi
stackOverflow 19.02.2025
В этой статье мы рассмотрим создание системы отслеживания транспортных средств и определения их скорости с использованием компьютерного зрения и библиотеки OpenCV. Наше решение основано на принципе. . .
ENV (environments) valid paths in linux
jigi33 19.02.2025
Environments paths (see screenshot)
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru