If your version of 3DGS supports it, you are better of using
SYS_malloc() and SYS_free() instead of malloc() and free().
They have EXACTLY the same syntax and usage, but are somewhat 'managed'
by the engine.
I cant remember exactly, but I think they do more error-checking,
and they get automatically 'cleaned-out' by the engine on exit.
... I think ... Its been a while...
FYI: By following the same pattern, you can do 3, 4, or more dimensional arrays too.
eg: STRING**** data; //referenced by (((data[w])[x])[y])[z]=0;