Stampa di un array.

va bene. proviamo una altra via. visto che leggi da una seriale, immagino che i caratteri siano o numeri interi di tipo byte (uint_8) o char.
A questo punto usi una bella union sul tuo buffer che cosè potrai "vedere ed usare" sia come byte che come char a seconda della necessità e inoltre non allochi due buffer (uno per array e uno per stringa). Basta mettere un bel "tappo" alla stringa (uno 0 alla fine dei caratteri letti da rs232).

union rs_buf{
  byte b[512];  // o lungo quanto ti pare alla faccia di tuxduino :-)
  char c[512];
  };

rs_buf array;

ma guarda che mi tocca fare per farvi contenti ....