umm yo lo declararía así sabiendo que solo usaré 29 bytes más el null char:
char cadena[30];
Y recuerdo que había detalles o problemas con el %f de ccs, ¿puedes poner ejemplos de cómo entran y salen los datos?
Bueno lo he solucionado de una manera un poco "chapuza" pero me funciona y no consumo mucho codigo, lo que hago es ademas de indicar a sprintf %04.0f que es lo que me habiais indicado (que esto no me funciona
), borro el string velocidad y altitud (dejo todo a ' '), asi siempre lo construyo desde un array limpio (podria tener que ver con estos strings el problema, pero se construyen siempre de la misma manera ya que recogo los datos de otro dispositivo via RS232 y solo me da error la variable altitud ¿?)
El codigo de sprintf queda asi (perdonar por añadir una variable que no estaba, al solucionarlo, he continuado picando codigo):
sprintf(*cadena,"Vel: %03.0f #: %2u Alt: %04.0f ", atof(velocidad_km),atoi(satelite),atof(altitud));
MIGsantiago, necesito que cadena sea un array de punteros a char, por eso esa definicion, ese string lo utilizo en multitud de funciones y no puedo modificarlo porque me daria problemas. Realmente utilizo los 30 caracteres, osea todo el array, por ahi no viene el problema, ya que he probado tambien a modificar la posicion del array altitud dentro del string cadena con el mismo resultado, y ademas cadena siempre entra limpia a sprintf porque como comentaba lo utilizo como "comodin" en otras funciones. ¿que necesitas saber? ¿el string que recogo y como lo añado a las variables altitud y velocidad?
jfh900, lo use y no me funciono...... no se el porque.
Gracias, Saludos.