¿Qué me falta aquí? ¡Me está volviendo loco!C++: ¿Por qué no puedo imprimir un const char * con sprintf?
que tienen una función que devuelve un char * const
const char* Notation() const
{
char s[10];
int x=5;
sprintf(s, "%d", x);
return s;
}
Ahora en otra parte del código que estoy haciendo esto:
.....
.....
char str[50];
sprintf(str, "%s", Notation());
.....
.....
pero str se mantiene sin cambios.
Si en vez hago esto:
.....
.....
char str[50];
str[0]=0;
strcat(str, Notation());
.....
.....
str está ajustada correctamente.
Me pregunto por qué sprintf no funciona como se esperaba ...
Tal vez una idea es cambiar la función a: anulación de notación (char * buffer) const y trabajar en el búfer char proporcionado por el llamador. – Wartin
¿Por qué el voto a favor? La pregunta es clara: se proporcionó una muestra "operativa" que muestra el esfuerzo y se proporciona la muestra del problema real. – chris