char* msg;
strcpy(msg, "Hello World!!!"); //<---------Ewwwww
printf("%s\n", msg);
Это UB.Никаких вторых мыслей.msg
- это дикий указатель, и попытка разыменования может вызвать segfault в вашей реализации.
msg
указывает на допустимое место в памяти, достаточно большое, чтобы вместить "Hello World".
char* msg = malloc(15);
strcpy(msg, "Hello World!!!");
или
char msg[20];
strcpy(msg, "Hello World!!!");