Russian Qt Forum

Qt => Общие вопросы => Тема начата: Денис от Октябрь 16, 2014, 14:01



Название: Смешно спросить )
Отправлено: Денис от Октябрь 16, 2014, 14:01
Проблема в сравнении двух больших чисел. Пытаюсь проверить CRC32, когда приходит ошибочная сумма то появляется ошибка:

ASSERT: "uint(i) < uint(size())" in file C:\Qt\5.3\mingw482_32\include/QtCore/qbytearray.h, line 432
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.


, вот что там находится:
inline char QByteArray::at(int i) const
{ Q_ASSERT(uint(i) < uint(size())); return d->data(); }

А вот что я сравниваю:
Код:
// Checking the crc32
if(!(crc32-(unsigned int)0x3425))
{
  
}

вместо числа стояла функция возвращающая число, но даже это не хочет сравнивать, после этой строки ошибка Runtime to terminate и т.д. ?
Может проблема в компиляторе ?


Название: Re: Смешно спросить )
Отправлено: Igors от Октябрь 16, 2014, 14:40
А вот что я сравниваю:
Код:
// Checking the crc32
if(!(crc32-(unsigned int)0x3425))
{
  
}
Не вижу как это связано с QByteArray


Название: Re: Смешно спросить )
Отправлено: Денис от Октябрь 16, 2014, 14:43
Вот и я понять не могу, как обычное сравнение может вызывать такую ошибку ?


Название: Re: Смешно спросить )
Отправлено: vulko от Октябрь 16, 2014, 15:23
на дебажном билде должен появится стэк вызовов, по которому рантайм попал в этот самый асерт.

ещё советую сделать clean, rebuild.


Название: Re: Смешно спросить )
Отправлено: Bepec от Октябрь 16, 2014, 16:22
А ты приведи полный код. А не тот обрывок, в котором мы даже не знаем что такое crc32


Название: Re: Смешно спросить )
Отправлено: Денис от Октябрь 27, 2014, 19:21
на дебажном билде должен появится стэк вызовов, по которому рантайм попал в этот самый асерт.

ещё советую сделать clean, rebuild.

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