Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question sur les pointeur

Bonjour tout le monde

    26 octobre 2019 à 4:51:06

    bonjour tout le monde jaurais une question sur les pointeur jai pris un code source sur le site developpez.com et a la ligne ou il y a malloc ,memset et motChercher[sizeof(motAtrouver)] ligne 19 , 20 21  je me demande pourquoi il n'Y a pas d'etoile en avant du pointeur motChercher et pourquoi aussi a la ligne 36 ou on affiche le mot cacher avec printf(%s , motChercher) il n'y a pas d'etoile pour dire que ses la valeur qu'on veux
    si vous pourriez m'eclaire un peu sa serais bien pcq jai l'impression quil y a plusieur maniere d'utiliser les pointeur
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define TRUE 1
    #define FALSE 0
    char lireCaractere() {
       char chaine[2]; 
       gets(chaine);
       return chaine[0];
    }
    int main() {
       int i=0;
       int coups=7;
       char motAtrouver[]="BONJOUR";
       char lettreSaisie=' ';
       int lettre_trouvee=FALSE;
       char gagne=FALSE;
       char* motCherche;
       motCherche=malloc (sizeof (motAtrouver));
       memset (motCherche,'*',sizeof (motAtrouver));
       motCherche[sizeof (motAtrouver)-1]=0;
       printf("Jeu de pendu \n");
       do {
          // Aucune lettre trouvée
          lettre_trouvee=FALSE;
          // Saisie d'une lettre et mise en majuscule
          printf("\nVotre lettre : ");
          lettreSaisie=lireCaractere();
          // Comparaison avec le mot secret
          for(i=0; i<strlen (motAtrouver); i++) {
             if(lettreSaisie==motAtrouver[i]) {
                motCherche[i]=lettreSaisie;
                lettre_trouvee=TRUE;
             }
          }
          printf("%s", motCherche); //on affiche le mot cache
          if (!lettre_trouvee) {
             coups--;
          }
          printf("\nIl vous reste %d coups.\n ", coups );
          gagne=! strcmp(motAtrouver, motCherche);
       }
       while(!gagne && coups>0);
       if ( gagne )
          puts ("GAGNE");
       else
          puts ("PERDU");
       getchar();
       free (motCherche);
       return 0;
    }
    

    -
    Edité par ReqcD. 26 octobre 2019 à 4:53:33

    • Partager sur Facebook
    • Partager sur Twitter
      26 octobre 2019 à 8:52:32

      Salut,

      motCherche est une adresse (un pointeur sur char)

      *motCherche est un caractère (un char)

      ...

      • Partager sur Facebook
      • Partager sur Twitter
        26 octobre 2019 à 19:28:42

        oui mais a la ligne 36 il ecrit motcherche  sans l'etoile et il recherche la chaine de caractere du motChercher sans etoile
        • Partager sur Facebook
        • Partager sur Twitter
          27 octobre 2019 à 0:52:31

          Parce que motCherche est une adresse, et c'est ce qu'attend printf avec le spécificateur %s !
          • Partager sur Facebook
          • Partager sur Twitter

          Question sur les pointeur

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown