struct Hohho
{
size_t size; int data[1];
};

struct Hohho *p = (struct Hohho *)malloc(sizeof(size_t)+(N-1)*sizeof(int));

こんなことしていいんですか?