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

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

Восстановить пароль Регистрация
 
Saiberg
 Аватар для Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
19.11.2010, 11:30     Работа с указателями(небольшой вопрос насчет преобразований) #1
C++
1
2
*((uint*)space)=SIGNATURE;
space+=sizeof(uint);
Как записать в одну строчку ?

C++
1
*(((uint*)space)++)=SIGNATURE;
так не работает = \
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2010, 11:30     Работа с указателями(небольшой вопрос насчет преобразований)
Посмотрите здесь:

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

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

можно попробовать
C
1
*((uint *) space)++ = SIGNATURE;
Saiberg
 Аватар для Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
19.11.2010, 11:48  [ТС]     Работа с указателями(небольшой вопрос насчет преобразований) #5
не комплируется так...
accept
4838 / 3237 / 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++ Вопрос насчет указателей

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 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     Работа с указателями(небольшой вопрос насчет преобразований)
Ответ Создать тему
Опции темы

Текущее время: 17:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru