In one C++ open source project, I see this.
struct SomeClass { ... size_t data_length; char data[1]; ... }
What are the advantages
The idea behind this particular thing is that the rest of data fits in memory directly after the struct. Of course, you could just do that anyway.
data