Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Растолкуйте
|
|||
|---|---|---|---|
|
#18+
Вот этот пример-решение Код: plaintext 1. 17381263 вот это (T*) - приведение к ссылке адреса &ptr а это *(T*)&ptr - взятие значения по этому адресу, верно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:03 |
|
||
|
Растолкуйте
|
|||
|---|---|---|---|
|
#18+
Герой дняВот этот пример-решение Код: plaintext 1. 17381263 вот это (T*) - приведение к ссылке адреса &ptr Не совсем... Тут предполагается что ptr это простая переменная одного типа, а x это простая переменная другого типа. Код: plaintext 1. 2. 3. 4. А теперь мы приходим к кошмару: &ptr - указатель на тип S (T*)&ptr - превращаем указатель на S в указатель на T *(T*)&ptr - сюда уже можно писать. Ну и как wst сказал в цитируемом посте: "Если цель просто скомпилировать..." *(T*)&ptr=x; Скомпилируется без проблем, но правомочность такого приведения никто не гарантирует. По существу это тоже самое что и ptr = (S)x . Но когда мы знаем что x это число, а ptr это класс - сразу возникнут сомнения в разумности написавшего. А через обилие спецсимволов и конвертаций это можно замаскировать... По существу это чистое вредительство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:19 |
|
||
|
Растолкуйте
|
|||
|---|---|---|---|
|
#18+
White Owl, спасибо, теперь стало ясно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:34 |
|
||
|
Растолкуйте
|
|||
|---|---|---|---|
|
#18+
Самое интересное в таком решении - если писать через *(T*)&ptr, а читать весь ptr. И писать туда значения размерами, например, по очереди 4 и 2 (ну и, главное, читать их потом), не обнуляя при этом этот самый несчастный ptr. Зато счастлив компилятор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:38 |
|
||
|
Растолкуйте
|
|||
|---|---|---|---|
|
#18+
wst, мало что понял, почему 2 и 4, например.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:47 |
|
||
|
Растолкуйте
|
|||
|---|---|---|---|
|
#18+
Ок, 1. запустились, ptr = NULL (присваивание было в коде в исходном сообщении) 2. сделали f((int32_t)0xffff) 3. прочитали ptr, там 0xffff 4. сделали f(' ') 5. прочитали ptr, там не ' ', а 0xff20, как говорится "счастливой отладки" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2015, 18:54 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=49&tid=2019067]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 135ms |

| 0 / 0 |
