In C (with gcc), I used to have some data structures that were an array with some extra information:
struct song {
uint tempo;
uint key;
note play[0]; // or play[] depending on compiler flavour
};
Iirc, that's dubbed a "flexible array" (http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html#Zero-Length)
I could then allocate a song of N notes with malloc(sizeof(song)+N*sizeof(note))
at run-time.
To what extent is that supported in g++, if I don't intend to use vectors this time, nor to introduce a useless note*
pointer in song
?