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

Résolu
marouane87 Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   -  
marouane87 Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. Edwyn Messages postés 105 Statut Membre 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
  2. marouane87 Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   8
     
    Merci beaucoup =)
    0