If the cell type is VAL_CELL_STRING and you are calling GetTableCellVal, then you need to allocate the memory and then free it when you no longer need it. Like this:
--------------
GetTableCellValLength (panel, control, cell, &strLength);
strBuffer = (char *)malloc (strLength + 1); // +1 in order to accomodate the 0 at the end
GetTableCellVal (panel, control, cell, strBuffer);
.... // this is the code that uses the string
free (strBuffer);
--------------
However, if instead of GetTableCellVal you are calling GetTableCellRangeVals in order to get the data for multiple cells at a time, then you don't need to allocate the individual string buffers. CVI will do it for you. But you then need to free them using the FreeTableValueStrings function.
Luis
NI