How do you do multi-dim arrays in c where each row can have a different number of columns?

In Pd I would do this:
[struct foo array a data]

and:

[struct data symbol svg_drawing_command array a the_data]

and finally:

[struct the_data float datum]

In c I've done a character array, an int telling me how big the character array is, an array for the numbers (actually a t_fielddesc array so they are settable per instance), and an int array to tell how many numbers per command.  So if the command is "M 10 10 L 20 30 A 1 2 3 4 5 6 7", the char array stores "MLA" and the array of numbers has "10 10 20 30 1 2 3 4 5 6 7".

I'm sending path data to the gui using this, so I want it to be fast.  Is there a better way?

-Jonathan