Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/07/2008, à 15:25

jeff0176

passing argument 1 of «NomFonction» from incompatible pointer type?

Bonjour

j'ai un warning qui reviens souvent pour plusieurs lignes de mon programme:
-- passing argument 1 of «NomFonction» from incompatible pointer type --

pour l'exemple de code ici, j'ai comme Warning:
--  attention : passing argument 1 of «getIndex» from incompatible pointer type --
[cpp]
//fichier de structures
typedef struct Cellule_
{
    char *element;
    int index;
    struct Cellule_ *suivant;
}Cellule;


//fichier de fonctions
int getIndex(Cellule **liste,char *element)
{
    int nbr=0;
    Cellule *tmp = *liste;
    while(tmp!=NULL)
    {
       if(strcmp(tmp->element,element)==0)
          return nbr;
                                           
       nbr++;
       tmp = tmp->suivant;
    }
    return -1;
}

//fichier test où j'appelle la fonction
void action(Cellule **lignes,Cellule **colonnes,char *nom, Regle **arbre,char* tableau)
{
    int ligne = getIndex(&lignes,nom);
    int colonne = getIndex(&colonnes,"M");
// ....  ect
}
[/cpp]

quelqu'un aurait-il une idée pour éliminer tout ces warnings?
car je vois pas...

merci d'avance

#2 Le 07/07/2008, à 15:29

jeff0176

Re : passing argument 1 of «NomFonction» from incompatible pointer type?

Bonjour

j'ai un warning qui reviens souvent pour plusieurs lignes de mon programme:

passing argument 1 of «NomFonction» from incompatible pointer type

pour l'exemple de code ici, j'ai comme Warning:

attention : passing argument 1 of «getIndex» from incompatible pointer type

//fichier de structures
typedef struct Cellule_
{
    char *element;
    int index;
    struct Cellule_ *suivant;
}Cellule;


//fichier de fonctions
int getIndex(Cellule **liste,char *element)
{
    int nbr=0;
    Cellule *tmp = *liste;
    while(tmp!=NULL)
    {
       if(strcmp(tmp->element,element)==0)
          return nbr;
                                           
       nbr++;
       tmp = tmp->suivant;
    }
    return -1;
}

//fichier test où j'appelle la fonction
void action(Cellule **lignes,Cellule **colonnes,char *nom, Regle **arbre,char* tableau)
{
    int ligne = getIndex(&lignes,nom);
    int colonne = getIndex(&colonnes,"M");
// ....  ect
}

quelqu'un aurait-il une idée pour éliminer tout ces warnings?
car je vois pas...

merci d'avance

ps: excusez pour le doublon.

#3 Le 07/07/2008, à 15:29

philou8237

Re : passing argument 1 of «NomFonction» from incompatible pointer type?

je dirait que c'est à cause de ça :

int colonne = getIndex(&colonnes,"M");

Tu lui files un "const char *", et le type est normalement un "char *".
Ca le perturbe wink

Hors ligne

#4 Le 07/07/2008, à 15:34

jeff0176

Re : passing argument 1 of «NomFonction» from incompatible pointer type?

le compilateur dit que ça vient de l'argument 1...  donc ça ne doit pas être ça il me semble

ça viendrait de la structure vous croyez?

#5 Le 07/07/2008, à 15:38

philou8237

Re : passing argument 1 of «NomFonction» from incompatible pointer type?

oui effectivement... je sais pas lire wink
Perso je pense pas que ça vienne de la structure, tu n'as rien fait de spécial.
Ah si ! je suis aveugle :
ta fonctions getIndex prend un Cellule** en 1er élément. Tu lui file &ligne
hors ligne est déjà un Cellule**, donc tu lui file un Cellule***.
Donc...

Hors ligne