Concatenate byte array of values into a char variable..

The characters must be somewhere, for example in a buffer.
In your function, you have pointer, but you have no location where the characters can be stored.

Are you sure the function calls itself ?
I doubt if that is good programming. A function can call itself, but I would never do it like that.

I personally like to solve it like this:

declare the buffer and call the function:

// declare the variables, on stack or in ram.
char buffer[40];
int error;

// calling the function, the returned error is optional
error = TableRows( buffer, 10);

// The function itself uses a pointer to the buffer.
// The function can read and write buffer.
int TableRows( char *buf, byte row)
{
  ...
  strcpy( buf, "Hello"); // Write something in the buffer.
  return (0);
}