LINUX.ORG.RU

Непонятный bad_alloc?

 ,


0

2
vector<string> namescol;
    namescol.push_back("id");
    namescol.push_back("task");
    namescol.push_back("parent_task");
 QStringList list;
    QString qstr;
    for (int i = 0; i < namescol.size(); i++)
    {
        qstr = QString::fromStdString(namescol[i]);//тут ошибка std::bad_alloc, i==0
        list.push_back(qstr);
    }

Проблемы с ОЗУ? Не должно быть же, пробуй:

QStringList list;
QString qstr;
for (unsigned long i = 0; i < namescol.size(); i++)
{
	try
	{
		qstr = QString::fromStdString(namescol.at(i));
		list.push_back(qstr);
	}
	catch (std::exception const &e)
	{
		qDebug() << e.what() << '\n';
	}
}
qDebug() << list;
bhfq ★★★★★
()
Ответ на: комментарий от bhfq

или так без временного qstring

for (const std::string str : namescol)
{
	try
	{
		list.push_back(QString::fromStdString(str));
	}
	catch (std::exception const &e)
	{
		qDebug() << e.what() << '\n';
	}
}
qDebug() << list;
bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 1)

А может быть проблема в том, что ты в качестве индекса используешь тип со знаком? Попробуй у i указать тип std::size_t. И кстати, что за компилятор?

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)

Скорее всего, где-то раньше повредилась память. valgrind или санитайзеры в помощь.

xaizek ★★★★★
()
Ответ на: комментарий от rumgot

были перемешаны рели3ные и дебажные либы

bad_master
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.