zHz00 Untitled

пятница, 01 декабря 2023
03:06 Неожиданные волшебные числа в переменных
Если ваши переменные имеют неправильные значения, и они всё время разные -- то отсюда дополнительной информации извлечь нельзя. А если значения повторяются? Их надо перевести в шестнадцатеричную систему.

Одна переменная у меня имела значение -107374176.0 . Постоянно. Сначала я её сконвертировал как целое число, но ничего интересного не нашёл (0x06666660, 0xF99999A0). Таких значений я не знал, но повторяющиеся цифры намекали, что тут собака всё-таки зарыта.

Тогда я решил попробовать использовать то, что написано. Число float, значит буду преобразовывать float. Взял в интернете калькулятор IEEE 754 и преобразовал. И что я получил?

0xCCCCCCCC

А вот это было уже известное число. Это неинициализированная память. Значит, в мою переменную попадает либо значение, прочитанное мимо массива, либо по указателю на валидную, но бессмысленную область памяти (что, в принципе, одно и то же).

Это не решение задачи, но очень серьёзная подсказка.

@темы: Программирование, Борьба с техникой

URL
Жизнь весьма непредсказуемая штука.... Вышел в середине...
:wow: :wow: :wow: YESSSS!!! Они сделали!!! Ето надо ...
Потрудился изрядно в спортзале... Все хорошо...только о...
Вот появилось ненужное компьютерное железо, решил продать...
Картинка одного из последних дней Шумная, безумная ночь...
Сегодня вдруг мне пришла мысль. Вообще-то мысли мне и р...

01.12.2023 в 17:03

01.12.2023 в 17:03
Ух ты. А я думал неинициализированная память заполнена нулями.
URL

01.12.2023 в 17:24

01.12.2023 в 17:24
Xersareeth, есть несколько "зон" памяти. Зона глобальных переменных заполняется нулями. Зона кучи и зона стека заполняется мусором. Но вижуал студия помогает разработчикам и частенько вместо мусора можно найти цешки.
URL

01.12.2023 в 17:39

01.12.2023 в 17:39
Где-то я краем уха читал что в современных ОС есть очистка памяти после освобождения, чтобы нельзя было вычитать что-то интересное из мусора другого процесса. И из-за этого могут глючить старые программы, в которых есть баги при работе с памятью.
URL

01.12.2023 в 18:08

01.12.2023 в 18:08
Xersareeth, очень может быть! Но конкретно на стеке моя программа ещё до запуска текущей функции могла наследить так, что будь здоров, и там реально может быть мусор.
URL
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail