Mi programa es el siguiente;¿Por qué el uso del especificador de formato incorrecto en C bloquea mi programa en Windows 7?
#include <stdio.h>
#include <string.h>
int main()
{
char string[] = "Gentlemen start your engines!";
printf("That string is %s characters long.\r\n", strlen(string));
return 0;
}
Estoy compilando bajo gcc, y aunque no me da ningún error el programa se bloquea cada vez que lo ejecute. El código parece estar bien a partir de los ejemplos que he visto. Sería genial saber si estoy haciendo algo mal.
Gracias.
Gracias a todos. Debería haber visto eso, recién comencé con C y había estado jugando con programas de texto que usaban cadenas solo hasta el momento, así que% s simplemente me vino a la mente. – austinprete
+1 porque me enteré de que debería haber estado usando% zu todo el tiempo en lugar de simplemente% u o incluso% d –
Si está utilizando GCC, suba sus errores con '-Wall' o tal vez' -Wextra' o tal vez '-Werror'. GCC puede verificar la cadena de formato y advertir sobre argumentos incorrectos para las funciones 'printf'-,' scanf'-, 'strftime'- y' strfmon'. –