我收到:
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图像)的无符号字符数组。 该数组由涡轮JPEG文库中产生的,我设置指针Data.data = generated_image
(的类型无符号字符[])
的问题是在接收方,在这里我尝试的空隙指针转换为所述blob
成指向struct Data
。标题没有问题,但Data->data
似乎是空/超出界限,而不是一个字符数组。
我不能使用固定长度,就像我做不知道data
的长度!
你刚发送'struct'吗?如果是这样,你会发送指针,在接收方指向无处。 – BoBTFish
@BoBTFish“数据通过网络定义发送,因为我正在看网络” – Theolodis
该示例中存在语法错误,内部'struct Header'被声明但从未实际使用,它应该是例如。 'struct Header {...}头;'创建该类型的'struct Data'成员。 – unwind