My program is as follows;
#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;
}
I'm compiling under gcc, and although it doesn't give me any errors the program crashes every time I run it. The code seems to be fine from examples I've seen. It'd be great to know if I'm doing anything wrong.
Thanks.
Using incorrect format specifier in printf()
invokes Undefined Behaviour. Correct format specifier should be %zu
(not %d
) because the return type of strlen()
is size_t
Note: Length modifier z
in %zu
represents an integer of length same as size_t
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With