|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
||||||
Парадокс: значение переменной равно её адресу29.09.2009, 13:33. Показов 3407. Ответов 26
Метки нет (Все метки)
Друзья! Вот код, в нём всё понятно.
Выводятся одинаковые значения. Но ведь этого не может быть! Хотя бы потому не может, что по адресу, который выводится первым, должно находиться значение символа '0'! Ну, то есть первая и третья строка вывода предсказуемы. Но вторая вообще ни в какие ворота не лезет. Помогите разобраться, пожалуйста. Спасибо.
0
|
||||||
| 29.09.2009, 13:33 | |
|
Ответы с готовыми решениями:
26
Чему равно значение переменной d? Почему значение переменной равно 5 Как присвоить переменной значение, взятое по определенному адресу? |
|
81 / 81 / 6
Регистрация: 14.09.2009
Сообщений: 252
|
|
| 29.09.2009, 15:10 | |
|
0
|
|
|
Модератор
12848 / 7597 / 1766
Регистрация: 25.07.2009
Сообщений: 13,985
|
|||||||
| 29.09.2009, 15:33 | |||||||
0
|
|||||||
|
Псевдо программист
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
|
|
| 29.09.2009, 15:51 | |
|
Не то.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,709
|
||||||||||||
| 29.09.2009, 16:04 [ТС] | ||||||||||||
|
Вот код, я его запустил в OllyDbg
004012DD |. E8 4E050000 CALL <JMP.&msvcrt.printf> ; \printf 004012E2 |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28] 004012E5 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX 004012E8 |. 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28] 004012EB |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX Вот после выполнения printf (первая строка) по РАЗНЫМ адресам [EBP-C] и [EBP-10] кладётся одно и то же значение. (EAX) Я посмотрел, что это за значение. Это адрес. и по нему находится этот самый массив. То есть адрес этого массива кладётся два раза по разным адресам. Остаётся предположить, что это выполняются две такие инструкции:
1
|
||||||||||||
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 29.09.2009, 20:38 | |
|
Позвольте слегка вставить свои 5 копеек. Тут наблюдается путаница между понятиями значения и адреса. Переменная s не "виртуальная", это просто массив. Формально значением такой переменной является содержимое всего массива. Но массивы в Си и С++ не имеют традиционной семантики значения: нельзя присвоить один массив другому, передать его значение в функцию через стек и т.п. Семантика массивов тесно переплетена с семантикой указателей, так что значение переменной-массива при любом удобном случае деградирует (pointer decay) до указателя на первый элемент массива. Это происходит, в частности, при передаче этого значения в printf.
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||
| 30.09.2009, 05:26 | |||||||
0
|
|||||||
|
62 / 63 / 3
Регистрация: 25.05.2009
Сообщений: 520
|
||
| 30.09.2009, 06:36 | ||
|
Есть только лишь массив s[x]. И, теоретически, компилятор должен был заругаться на обращение к s. А он оказался умничкой, и сам сообразил, что s это и есть &s.
0
|
||
| 30.09.2009, 06:36 | |
|
Нюансы использования препроцессора и макросов: чему будет равно значение переменной a? Чему будет равно значение переменной s после выполнения следующего фрагмента программы Чему будет равно значение переменной z после выполнения следующего фрагмента программы? Как я могу проверить равно ли значение переменной char одному из указанных значений? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|