В настоящее время я отлаживаю код, который иногда работает, а иногда нет.
Это загрузчик файлов OBJ, и я нашел часть, которая создает проблемы:
double val = strtod(str, &endptr);
Чтобы объяснить проблему, я приведу пример значений после вызова strtod
.
str = "-0.021344"
val = -0
*endptr = '.'
За этой строкой выполняется проверка ошибок и, если *endptr != '\0'
, выдается ошибка.
Теперь, конечно, выдается ошибка, потому что strtod
помечает точку как конец числа,
но почему это так? Также обратите внимание, что эта ошибка возникает только при использовании кода в проектах QT.
Спасибо за ваши идеи.