[C] Problème liste chainée (débutant)

Résolu/Fermé
marouane87 Messages postés 110 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 4 avril 2011 - 21 mars 2011 à 17:08
marouane87 Messages postés 110 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 4 avril 2011 - 23 mars 2011 à 11:15
Bonjour,

Je suis en train d'essayé de créer une liste chainée. Chaque structure est composé d'une fonction et d'un pointeur à l'élément suivant. J'ai crée donc un nouveau élement et en essaynt d'attribuer sa fonction je tombe sur ce problème, il m'affiche l'erreur suivante que je n'arrive pas à résoudre:

error C2659: '=' : function as left operand

La partie que j'essaie de coder est la suivante:

typedef struct block block;
struct block
{
void eval();
struct block *suivant;
};

struct block *struct_clip = malloc(sizeof(block));
struct_clip->eval = clip;


Je vous remercie pour toute aide.

2 réponses

Edwyn Messages postés 105 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 31 mars 2011 14
22 mars 2011 à 13:26
Salut,

Enfait dans ta structure quand tu écris "void eval();" tu déclare un prototype de fonction. Ce que tu veux toi c'est stocker un champ, pointeur sur fonction pour pouvoir l'utiliser. La déclaration de pointeur sur fonction est:

type_retour (*nom_pointeur)(args...)

Dans ton cas: "void (*eval)();"

Tu trouveras facilement de la doc sur les pointeur sur fonction
http://www.newty.de/fpt/zip/f_fpt.pdf

Cordialement,
1
marouane87 Messages postés 110 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 4 avril 2011 8
23 mars 2011 à 11:15
Merci beaucoup =)
0