[c] assignment from incompatible pointer type

assignment from incompatible pointer type [c] - C - Programmation

Marsh Posté le 26-03-2007 à 06:09:40    

bonjour, je ne comprend pas pourquoi mon code ne passe pas, et ai le warning suivant :
 "assignment from incompatible pointer type " pour les lignes 15 et 26 du code dans ce fichier .c
 
Pourtant, je trouve que tout concorde, la partie suiv est bien un *P_un_element... et on peut utiliser les -> pour accéder a cette partie de structure parce que el est un P_un_element, donc un pointeur...  
 
 
j'ai bien sur inclus les stdio et stdlib, mais je ne les recopierai pas.
 
le fichier .h :
 

Code :
  1. typedef int Tval;
  2. typedef struct _un_element{
  3.     Tval elem_val;
  4.     struct Un_element *suiv;
  5. }Un_element, *P_un_element;
  6. P_un_element creer_element(Tval val);
  7. void inserer_element_debut(P_un_element *liste, P_un_element el);
  8. void inserer_element_fin(P_un_element *liste, P_un_element el);


 
 
dans le fichier .c:
 

Code :
  1. P_un_element creer_element(Tval val){
  2.     P_un_element el;
  3.     el=malloc(sizeof(Un_element));
  4.     if (el){
  5.     el->elem_val=val;
  6.     el->suiv=NULL;
  7.     }
  8.     return el;
  9. }
  10. void inserer_element_debut(P_un_element *liste, P_un_element el){
  11. el->suiv = *liste;
  12. *liste = el;
  13. }
  14. void inserer_element_fin(P_un_element *liste, P_un_element el){
  15.     if (liste==NULL){
  16.  *liste=el;
  17.  }
  18. else{
  19.     P_un_element temp = *liste;
  20.  while (temp->suiv){
  21.  temp = temp->suiv;
  22.  }
  23.  temp=el;
  24.  }
  25. }


Message édité par nutrilifte le 26-03-2007 à 06:13:17
Reply

Marsh Posté le 26-03-2007 à 06:09:40   

Reply

Marsh Posté le 26-03-2007 à 16:46:54    

quelqu'un pourrait il m'eclaircir ?
merci !! :)

Reply

Marsh Posté le 26-03-2007 à 18:18:32    

ok ok, vous faites la tete :(
le probleme etait dans le fichier .h  ....
 
merci beaucoup ! vous avez été formidable ;)

Reply

Marsh Posté le 04-05-2008 à 23:45:01    

il y avait quoi dans le fichier .h ?
 
 
car j'ai exactement le meme erreur...
 

Citation :


liste.c: In function «ajout_dans_table":
liste.c::56: attention : assignment from incompatible pointer type
liste.c::65: attention : assignment from incompatible pointer type


 
 
j'ai regardé à mon point h  ... mais je vois rien de faux.   :??:  
 

Reply

Marsh Posté le 05-05-2008 à 09:33:58    

struct Un_element *suiv;
 
=>
struct _un_element *suiv;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed