Я пытаюсь понять процесс, с помощью которого я могу сериализовать и десериализовать данные в C. Я написал код, который, по моему мнению, должен записать простую структуру в буфер символов.
#include <packet.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h>
typedef struct
{
int A;
int B;
int C;
}test_packet;
int main(int argc, char** argv)
{
test_packet p;
p.A = 1;
p.B = 2;
p.C = 3;
char buffer [sizeof(p)];
memcpy(buffer, &p, sizeof(p));
printf("%x \n", buffer);
return 0;
}
Однако, когда я запускаю этот код, так как сериализуемая структура статически кодируется, я ожидаю, что буфер будет одинаковым каждый раз. Я не вижу буфер, заполненный случайными данными:
./SerializePacket
41bf5380
./SerializePacket
d89fc790
./SerializePacket
aea2c00
./SerializePacket
d355dc10
Может ли кто-нибудь облегчить мне мое невежество здесь?