Я использую QtCreator 4.8.0 с mingw 4.9.2, GDB 7.8 и Qt 5.6.3, и следующая строка кода выдает неверное значение, если выполняется в отладчике:
T* temp = reinterpret_cast<T*>(anArray.data());
T
- это float
, а anArray
- это QByteArray
со значениями [40 A0 00 00]
.40 A0 00 00
, преобразованный в число с плавающей точкой, на самом деле должен быть 5
, но по какой-то странной причине он оценивается как что-то около -10^38
, но только если выполняется в режиме отладки.Когда я запускаю программу за пределами отладчика QtCreator, значение правильно вычисляется как 5
.РЕДАКТИРОВАТЬ: На другой машине точно такой же код и комбинация Qt, mingw, ... работает абсолютно нормально.
Я уже пытался перестроить весь проект, но это ничего не меняет.У кого-нибудь есть идея, как это происходит?И что более важно, как это исправить?