Dej si pozor ať máš inicializované to pole znaků. Tohle vypadá jako by jsi měl jen náhodné věci z paměti.

Kód:
    char * c = new char[255];
    int i = 255;
    
    sprintf(c,"%i",i);
    
    printf("%c %c %c",c[0],c[1],c[2]);

    delete [] c;
Tohle mi funguje naprosto korektně.