[C] Problème liste chainée (débutant) [Résolu/Fermé]

Signaler
Messages postés
110
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
4 avril 2011
-
marouane87
Messages postés
110
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
4 avril 2011
-
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

Messages postés
105
Date d'inscription
vendredi 20 juin 2008
Statut
Membre
Dernière intervention
31 mars 2011
14
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 72886 internautes nous ont dit merci ce mois-ci

Messages postés
110
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
4 avril 2011
8
Merci beaucoup =)