短い:
私が受け取るもの:
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 は可変長の unsigned char の配列 (JPEG 画像) です。Data.data = generated_image
この配列はターボ JPEG ライブラリによって生成され、 (unsigned char[] 型の)ポインターを設定します。
問題はレシーバー側にあり、void ポインターを へのポインターにキャストしようとしblob
ますstruct Data
。ヘッダーには問題ありませんData->data
が、char 配列ではなく、null/範囲外のようです。
!の長さがわからないので、一定の長さを使用できません。data