Одна переменная у меня имела значение -107374176.0 . Постоянно. Сначала я её сконвертировал как целое число, но ничего интересного не нашёл (0x06666660, 0xF99999A0). Таких значений я не знал, но повторяющиеся цифры намекали, что тут собака всё-таки зарыта.
Тогда я решил попробовать использовать то, что написано. Число float, значит буду преобразовывать float. Взял в интернете калькулятор IEEE 754 и преобразовал. И что я получил?
0xCCCCCCCC
А вот это было уже известное число. Это неинициализированная память. Значит, в мою переменную попадает либо значение, прочитанное мимо массива, либо по указателю на валидную, но бессмысленную область памяти (что, в принципе, одно и то же).
Это не решение задачи, но очень серьёзная подсказка.