Todas las funciones en que se copiara algo a una cadena, necesitan que dicha cadena ya tenga memoria reservada, no lo van a hacer por ti (cosa que podrías hacer tú creándote una versión de dicha función).
Así, declara numero así:
o así:
Código:
char *numero;
// Pero hay que reservar memoria antes de usar numero
// como búfer de una función de cadenas
numero = (char *)calloc( 11, sizeof( char ) );
Después de eso, ya puedes llamar a sprintf.
Saludos,
JJ (Geo).