Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Проблема с qstring.h  (Прочитано 756 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ultralisk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Проблема с qstring.h
« : 25 Мая 2013, 19:00:05 »
В установленном Qt Creator 2.7.0  Based on Qt 5.0.1 (32 bit) Built on Apr 18 2013 at 18:40:45 попытался написать несложную программку, которая обрабатывает вводимую строку. Ошибок не находит, компилируется, запускается, и в консоли выдает следующее:

Цитировать
ASSERT : "i>=0" in file /usr/include/qt5/QtCore/qstring.h, line 937

Код:

QString Guf::Work (QString qstr)
{
    QString answer = "";
    for (int i=0;i<qstr.length();i++)
    {
        int size = answer.length();
        if (qstr[i] != answer[size-1]) answer+=qstr[i];
    }
    return answer;
}

Пробовал различные варианты, в итоге выяснил, что программе не нравится условие if (qstr [ i ] != answer[size-1]). Подскажите, в чем тут проблема?
« Последнее редактирование: 25 Мая 2013, 19:01:37 от Samuro »

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5681
  • Все по палатам!
    • Просмотр профиля
Re: Проблема с qstring.h
« Ответ #1 : 25 Мая 2013, 19:10:43 »
Может size равен 0?
Извините, я все еще учусь

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Проблема с qstring.h
« Ответ #2 : 25 Мая 2013, 19:11:57 »
В начале выполнения цикла у answer длина равна нулю, и при попытке получить элемент по индексу -1 срабатывает assertion. Вообще, во-первых, не привязывайтесь к "i >= 0", эта переменная i находится внутри той функции, где сработал assertion - в вашем коде совсем другая переменная i. Во-вторых можно запустить программу в отладчике (F5) и посмотреть, где возникла ошибка.

Перед запуском в отладчике придётся отключить запуск внешней консоли: зайти в настройки проекта (Ctrl+4, или 4-й режим), выбрать вкладку "Run" вместо "Build" и снять соответствующую галочку.

Оффлайн Ultralisk

  • Автор темы
  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Re: Проблема с qstring.h
« Ответ #3 : 25 Мая 2013, 19:15:24 »
Тьфу, не заметил такой грубой ошибки. Спасибо за помощь)

 

Страница сгенерирована за 0.106 секунд. Запросов: 25.