@aburka it will segfault and crash.
The key is type errors: in C kanguage "a" is a string, but 'a' has a completely different meaning: it's a character. Basically a number in the ASCII table (I am over simplyfing).
So when GCC sees 'Hello world', it interprets it as 'H' (and complains about the excedent letters - they are not proper UTF-8 multibyte) and interprets it as 72. Then C will automatically convert the number 72 into a pointer (hence the other warning).
...
@aburka ...Running it, printf will attempt to find a format string at location 72 of the memory. And crash.
There are helpers in GCC for printf, but currently they only check if *the static string* is a proper format and match the argument. They currently cannot check that the wrong type (a character instead of a string) was provided.
C++ is more peeky about types and would probably complain about not converting int to pointer, but still no explanation why 'H' is considered int.