struct Header {
int total_size;
char naemestr[1];
};

本質的には int total_size + naemestr可変としたいが
sizeof(struct Header) は char naemestr[1]; を含むのでキモいことになる