Well, there is a difference between "format specifier" and "format string". The first argument to printf is the format string, the `%d` and `%s` type things are the format specifiers. I was talking about this
printf("Hi", 45);
which will not segfault. If you meant printf(45);
Then you are absolutely correct, that would segfault on common machines.