短的:
我收到什么:
void* -> blob |version(int)|timestamp(long)|number(unsigned)|data(char[x])|
我想要的是:
将其转换为类型的指针Data*
明确的:
我通过网络接收 BLOB 并希望将其转换为以下结构(或类似结构):
struct Data
{
struct Header
{
int version;
long timestamp;
unsigned number;
}__attribute__((packed)) header
unsigned char* data;
}
其中 Data.data 是可变长度的无符号字符数组(JPEG 图像)。该数组由 turbo-JPEG 库生成,我设置了指针Data.data = generated_image
(类型为 unsigned char[])
问题出在接收端,我尝试将指向 的 void 指针blob
转换为指向struct Data
. Header 没问题,但Data->data
似乎是 null/超出范围,而不是 char 数组。
我不能使用恒定长度,因为我不知道data
!