20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
1

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

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

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

C++
1
*(((uint*)space)++)=SIGNATURE;
так не работает = \
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2010, 11:30
Ответы с готовыми решениями:

вопрос насчет БП!!!
пол года назад купил БП Gigabyte superb 460w,2 дня назад он стал издавать ультразвук,сегодня...

Вопрос насчет Form...
Никак не хочет показываться Form2....., т.е. прога ваще не запускается...пишет ошибку: :rtfm: ...

Вопрос насчет рутера
Хочу купить рутер D-Link DIR-615 Слышал бывает такое что когда пользуешься беспроводным...

Вопрос насчёт сессии
Моя проблема состоит в следующем: Есть страница (form.php), на которой расположена форма ввода...

6
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
19.11.2010, 11:36 2
а какие типы имеют space и SIGNATURE?
Я просто не понимаю зачем сначала приводить к указателю и сразу разыименовывать его.
И что мешает сделать так?
C
1
*((uint*)space) = SIGNATURE + sizeof(uint)
0
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
19.11.2010, 11:38  [ТС] 3
SIGNATURE uint
space uchar*

т.е. то , что вы написали не имеет смысла в моем случае
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2010, 11:41 4
Цитата Сообщение от fasked
Я просто не понимаю зачем сначала приводить к указателю и сразу разыименовывать его.
такое бывает, если там какой-нибудь void *, поданный в функцию

можно попробовать
C
1
*((uint *) space)++ = SIGNATURE;
1
20 / 20 / 2
Регистрация: 23.09.2010
Сообщений: 193
19.11.2010, 11:48  [ТС] 5
не комплируется так...
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.11.2010, 11:58 6
да, скорее всего не прокатит в одну строку, так как указателя на uint нету, то есть перемещать нечего
1
Эксперт С++
5038 / 2617 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 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
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2010, 12:04
Помогаю со студенческими работами здесь

Вопрос насчет даты
Как узнать системную дату , потом разложить ее на день,месяц год ,затем присвоить переменным...

Вопрос насчет массивов
Здравствуйте! Не могли бы Вы мне подсказать: в каких случаях,в программах с массивами при описании...

Вопрос насчет SpeedButton
Видел в книжке пример, в котором кнопки рассматривались как массив,при этом они создавались в...

Вопрос насчёт техпроцесса
Почему 28нм техпроцесс уже используется в процессорах графических карт, а в обычных, то бишь разных...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru