![]() |
как загнать значения в struct
Товарищи, допустим есть такой код (структура. Не знаю как правельно это называется):
Код:
typedef struct packetКод:
char buff[] = {Тоесть чтобы у переменной pack были значение buff и я мог обратится к pack.num и тд Конечно можно считать 4 байта в pack.num ,а потом 8 байт в pack.msg ,НО это не красиво, да и структура может быть другой (гараздо больше и тд ) Вообщем подскажите, если вы меня поняли :) зы не могу спросить у google так-как не знаю как правельно постоить такой вопрос. |
Начнем с того что описание структуры будем писать так
Код:
typedef structНо первые 12 байт всеравно можно загнать, тоесть если я тебя понял, как бы наложить на структуру. Непосредственное копирование памяти: Код:
packet p;p.num Или просто ставим указатель на структуру на адрес буфа Код:
packet *p; // как указатель на структуру packetp->num В твоем случае в num получается 1049088 или 0x100200 Вопрос ты задал довольно корректно, что странно для форума.античат.ру тест: Код:
#include <stdio.h> |
Спасибо. То что нужно.
в С++ я человек новый, поэтому указатели для меня нечто пришедшее из космоса :) |
А почему перед "return 0;" не написана строка " getchar(); "
У меня без этой строчки программа запускается и тут же исчезает! |
Цитата:
Цитата:
|
fucker"ok, не забудь, что размер буфера и структуры различны (судя по примеру). memcpy(&p2, buff, sizeof( buff )) тут не прокатит, надо наоборот: memcpy( &p2, buff, sizeof( packet )); иначе при копировании хвост структуры будет перезаписан. бугага, Кез, ты кстати парню уязвимость впарил. причем ту о которой статью писал =)
|
А ты прочитай внимательнее вопрос, а потом вставляй свои тупые "бугага"
|
| Время: 10:20 |