Dein Array sollte aus unsigned char bestehen und ein Größenangabe haben.
unsigned char buffer[7];

itoa will nicht den Inhalt der ersten Bufferposition (buffer[0]), sondern einen Zeiger auf den Anfang des buffers.
itoa(22,buffer,3);

und da du wohl Dezimalzahlen haben willst und kein Dreiersystem, wäre 10 statt 3 als Basis wohl besser.
itoa(22,buffer,10);