短的:
我收到什么:
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!