N バイトの長さのバッファーがあります。ここで、N は少なくとも 50 です。このバッファーは非常に特殊な形式であり、最初の 4 バイトはバッファーの長さ (これらの 4 バイトを含む) を表す unsigned int です。次の 16 バイトは、異なる意味を持つ 4 つの unsigned int です。次の N-20 バイトは、メモリの汎用バッファです。
現在、このバッファを設定するには、次のようにします。
memcpy((char*)my_buf + 0, &buf_size, 4); //buf_size is some unsigned int
memcpy((char*)my_buf + 4, &prop0, 4); //buf_size is some unsigned int
memcpy((char*)my_buf + 8, &prop1, 4); //buf_size is some unsigned int
memcpy((char*)my_buf + 12, &prop2, 4); //buf_size is some unsigned int
memcpy((char*)my_buf + 16, &prop3, 4); //buf_size is some unsigned int
//Many more bytes used as a generic buffer
しかし、これは非常に洗練されていないようです。この時点で、初期アドレスが与えられたときに特定の値を特定のメモリ オフセットに割り当てるより洗練された方法があるかどうか、コミュニティに尋ねたいと思います。
私は構造体を使用することを考えましたが、IIRC 構造体はそのメンバーがメモリに配置される順序を保証しません。構造体が一般的なメモリ空間であるバッファの末尾をどのように表現できるかわかりません。