Partage
  • Partager sur Facebook
  • Partager sur Twitter

pointeur dans une structure

Sujet résolu
    15 mars 2018 à 12:57:21

    s'il vous plait j'ai un probleme je ne sais pas acceder a une structure via un pointeur ce code ne marche pas
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct{
        int jour;
        char mois;
        int annee;
    }date;
    
    void DemandeDate(date *dp);
    void AfficheDate(date *dp);
    
    int main(){
    
    date *dp;
    DemandeDate(&dp);
    AfficheDate(&dp);
    
    return 0;
    }
    
    
    void DemandeDate(date *dp){
    
    printf("donner le jour le mois lannee\n");
    scanf("%d %s %d\n",&dp->jour,dp->mois,&dp->annee);
    
    }
    
    void AfficheDate(date *dp){
    
    printf("le jour : %d le mois : %s lannee : %d \n",dp->jour,dp->mois,dp->annee);
    
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      15 mars 2018 à 13:42:03

      Hello,

      Dans ton main, tu déclares dp comme étant un pointeur, mais c'est faux. C'est simplement date dp;

      Si tu veux utiliser dp tel que tu l'as déclaré, tu dois faire un malloc() pour dp, et modifier l'appel aux fonctions.

      -
      Edité par edgarjacobs 15 mars 2018 à 13:43:19

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        15 mars 2018 à 15:17:26

        merci beaucoup pour ta réponse :) j'ai déclaré date dp; mais le programme ne marche toujours pas avec les chaines de caractères
        • Partager sur Facebook
        • Partager sur Twitter
          15 mars 2018 à 15:21:51

          Salut, tu as déclaré "mois" en tant que simple variable et non en tant que tableau dans ta structure.
          • Partager sur Facebook
          • Partager sur Twitter
            15 mars 2018 à 15:31:20

            merci beaucoup ça marche maintenant :)
            • Partager sur Facebook
            • Partager sur Twitter
              15 mars 2018 à 16:20:54

              Pas de quoi. Attention avec scanf(), là tu lui envoyais la valeur d'ue variable au mieu d'ue adresse, ce qui aurait pu causer un buffer overflow.
              • Partager sur Facebook
              • Partager sur Twitter
                20 mai 2018 à 20:41:17 - Message modéré pour le motif suivant : Message complètement hors sujet


                  20 mai 2018 à 22:34:37

                  -

                  -
                  Edité par edgarjacobs 20 mai 2018 à 23:10:26

                  • Partager sur Facebook
                  • Partager sur Twitter

                  On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                    21 mai 2018 à 2:42:24 - Message modéré pour le motif suivant : Message complètement hors-sujet, deuxième avertissement


                    pointeur dans une structure

                    × 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