このコードは、最後の行でセグメンテーション違反を発生させます。ヘッダーは、すべて 0 の連続したメモリ ブロックへのポインターであり、残りを逆参照すると 0 が返されますが、これはおそらく問題に関連しています。私はまだこれがうまくいくはずだと感じていますが、何が問題なのですか?
void setHeader(void *header, size_t payload) {
size_t *remainder = (size_t*)((char *)header + (payload + 4));
*remainder = payload;
}