Quel est le problème avec ce scanf ()?

Est-ce que j’utilise scanf () d’une manière incorrecte?

char *input; scanf("%s", input); printf("%s\n", input); 

Cela échoue au moment de l’exécution.

 char *input; 

Ceci est un pointeur. Cela ne pointe vers aucune mémoire.

 #include  #include  int main() { //char *input; char input[128]; memset(input, 0 ,sizeof(input)); scanf("%s", input); printf("%s\n", input); return 0; } 

Déclarer un caractère char * crée uniquement un pointeur, il n’alloue aucune mémoire pour la chaîne. Vous devez allouer de la mémoire pour les entrées. Vous pouvez le faire dynamicment via malloc (et free quand c’est fait) ou vous pouvez déclarer un tableau de taille statique comme char input[100] .

remplacez char *input; avec char input[1024] = {0};

vous devez vous assurer que le paramètre que vous transmettez à scanf pointe vers un tampon susceptible de contenir votre entrée