IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Warning -> mais pourquoi ?


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Par défaut Warning -> mais pourquoi ?
    Bonjour, j'ai un problème avec une compilation, je créai une liste chaîné. mais j'ai des warnings à la compilation:

    assigment from incompatible pointer type

    je vous montre le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    typedef struct T_resultat
    {
    char resultat[250];
    struct T_result *result_suiv;
    struct T_hyp *hyp_suiv_reg;
    }T_result;
     
    typedef struct T_hypo
    {
    char hypotese[250];
    struct T_hyp *hyp_suiv_hyp;
    }T_hyp;
    la fonction qui appelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    void ajouter_regle (T_result **pt_tete)
    {
        int nb_hyp=0,i=0,j=1;
        char hyp[200];
        T_result* new_result=creer_result();
        printf("insérer le nombre d'hypothese");
        scanf("%d",&nb_hyp);
        for (i=0;i<nb_hyp;i++)
        {
            T_hyp* new_hyp=creer_hypo();
            printf("inserer l'hypothese |%d|:",j);
            scanf("%s",hyp);
            ajouter_hypo(new_hyp,&new_result,hyp);
            j++;
     
        }
        *pt_tete=ajouter_result(new_result,*pt_tete);
    }
    la fonction appelée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    void ajouter_hypo(T_hyp* S_hypo,T_result **S_resultat,char* C_hypo)/**WRONG*/
    {
        printf("\nOn rentre dans ajouter Hypo");
        if(*S_resultat!=NULL && (*S_resultat)->hyp_suiv_reg==NULL)
        {
            strcmp(S_hypo->hypotese,C_hypo);
            (*S_resultat)->hyp_suiv_reg=&S_hypo; //WARNING ICI
        }
        else
        {
            S_hypo->hyp_suiv_hyp=(*S_resultat)->hyp_suiv_reg;
            (*S_resultat)->hyp_suiv_reg=S_hypo; //WARNING ICI
        }
        printf("\nOn sort de ajouter Hypo");
    }
    Merci,
    Si vous avez des questions n'hésitez pas
    Salutation, Philippe

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 43
    Par défaut
    Essaye de declarer tes structures de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    typedef struct T_hypo
    {
    char hypotese[250];
    struct T_hypo *hyp_suiv_hyp;
    }T_hyp;
     
    typedef struct T_resultat
    {
    char resultat[250];
    struct T_resultat *result_suiv;
    T_hyp *hyp_suiv_reg;
    }T_result;
    Et ici, y'avait un petit soucis aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    void ajouter_hypo(T_hyp* S_hypo,T_result **S_resultat,char* C_hypo)/**WRONG*/
    {
        printf("\nOn rentre dans ajouter Hypo");
        if(*S_resultat!=NULL && (*S_resultat)->hyp_suiv_reg==NULL)
        {
            strcmp(S_hypo->hypotese,C_hypo);
            (*S_resultat)->hyp_suiv_reg=S_hypo; //WARNING ICI, t'avais un &S_hypo
        }
        else
        {
            S_hypo->hyp_suiv_hyp=(*S_resultat)->hyp_suiv_reg;
            (*S_resultat)->hyp_suiv_reg=S_hypo; //WARNING ICI
        }
        printf("\nOn sort de ajouter Hypo");
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Par défaut
    Pufff Trop fort . Tu es super rapide ... bien joué, plus de warning ... ça fait de suite plus propre...

    Merci beaucoup ... Bonne journée

    Philippe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2005, 20h18
  2. La FAQ qui ne marche pas mais pourquoi?
    Par Antoine_1977 dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 16h22
  3. erreur LOOP attendu , mais pourquoi?
    Par ahage4x4 dans le forum ASP
    Réponses: 10
    Dernier message: 23/05/2005, 16h22
  4. Mais pourquoi ... Avec IE les tableaux sont décentrés ?
    Par nebule dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/11/2004, 10h04
  5. [Execution] qtintf70.dll Mais pourquoi?
    Par Pedro dans le forum EDI
    Réponses: 4
    Dernier message: 03/06/2004, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo