Я попытался сериализовать поле структуры (int) в буфер char*, но думаю, что делаю что-то неправильно.
Это то, что я использую для копирования этого поля.
memcpy(payload + offset, &packet->payload.offset, sizeof(long int));
package->payload.offset представляет собой длинное целое число и содержит значение «5» (жестко запрограммированное), обратите внимание, что:
Если я напечатаю: printf("offset: %ld \n", packet->payload.offset);
, я получу: offset: 5
Но если я напечатаю: printf("offset: %ld \n",&packet->payload.offset)
, я получу: offset: 167120959
Если в memcopy я удалю «&» во втором аргументе, чтобы записать «5» в буфер, это вызовет ошибку сегментации, но если я этого не сделаю, он скопирует 167120959 (я полагаю, что это его адрес) в буфер вместо фактическое значение.
Большое спасибо за Вашу помощь! Я старался быть как можно более описательным, надеюсь, вы сможете мне помочь.