esto esta mal!! por segunda vez porque ya te lo había señalado. No tiene el buffer o cadena donde guardas el texto formateado.
Mira como lo he hecho o definido
int numero = 12345;
char buffer[20];
sprintf(buffer,"Lo que gustes :%5d", numero);
buffer[20]; es la clave
Otro error del que ahora me percato
sprintf("texto,|%*d|\n", longitud, numero);
No puedes usar %*d que no se de donde lo has sacado para que la longitud sea modificable, no funciona asi, se pone %5d para indicar 5 lugares o %3d para 3 lugares pero no es variable.