我收到:
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