Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
#1

Работа с указателями(небольшой вопрос насчет преобразований) - C++

19.11.2010, 11:30. Просмотров 325. Ответов 6
Метки нет (Все метки)

C++
1
2
*((uint*)space)=SIGNATURE;
space+=sizeof(uint);
Как записать в одну строчку ?

C++
1
*(((uint*)space)++)=SIGNATURE;
так не работает = \
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
19.11.2010, 11:36     Работа с указателями(небольшой вопрос насчет преобразований) #2
а какие типы имеют space и SIGNATURE?
Я просто не понимаю зачем сначала приводить к указателю и сразу разыименовывать его.
И что мешает сделать так?
C
1
*((uint*)space) = SIGNATURE + sizeof(uint)
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
19.11.2010, 11:38  [ТС]     Работа с указателями(небольшой вопрос насчет преобразований) #3
SIGNATURE uint
space uchar*

т.е. то , что вы написали не имеет смысла в моем случае
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.11.2010, 11:41     Работа с указателями(небольшой вопрос насчет преобразований) #4
Цитата Сообщение от fasked
Я просто не понимаю зачем сначала приводить к указателю и сразу разыименовывать его.
такое бывает, если там какой-нибудь void *, поданный в функцию

можно попробовать
C
1
*((uint *) space)++ = SIGNATURE;
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
19.11.2010, 11:48  [ТС]     Работа с указателями(небольшой вопрос насчет преобразований) #5
не комплируется так...
accept
4819 / 3239 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.11.2010, 11:58     Работа с указателями(небольшой вопрос насчет преобразований) #6
да, скорее всего не прокатит в одну строку, так как указателя на uint нету, то есть перемещать нечего
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2010, 12:04     Работа с указателями(небольшой вопрос насчет преобразований)
Еще ссылки по теме:

C++ Небольшой вопрос по заполнению структуры
Небольшой вопрос от нуба в C++ C++
C++ Вопрос насчет указателей
C++ Работа с указателями

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
19.11.2010, 12:04     Работа с указателями(небольшой вопрос насчет преобразований) #7
accept, это ж lvalue.

ну вообще у меня вот так получилось, даже отработало, но это undefined явный:
C
1
2
3
4
5
6
        uint SIGNATURE = 0xA;
        uchar *space = NULL;
 
        space = (space = (char*)SIGNATURE) + sizeof(uint);
 
        printf("%p\n", space);
В результате space = 0xE
Yandex
Объявления
19.11.2010, 12:04     Работа с указателями(небольшой вопрос насчет преобразований)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru