There is a big difference between:
struct A { int size; char data[]; }
struct B { int size; char *data; }