char *ptr = "ghijkl";
が可能で

char *ptr;
scanf("%s",ptr);
がダメなのはなんで?