J'ai une fonction où j'ai les lignes dans scope.c
, et échoue sur la troisième ligne avec une erreur de type pointeur incompatible.Affectation d'un type de pointeur incompatible avec structs
struct scope* newScope = malloc(sizeof(struct scope));
newScope->symbols = createSymbolTable();
newScope->st = createSyntaxTree();
Le champ struct dans scope.h
est défini comme:
struct scope {
char *id;
struct symboltable* symbols;
struct symboltree* st;
struct symboltable* strings;
};
Et le prototype de la fonction createSyntaxTree() dans syntax.h
est
struct syntaxtree* createSyntaxTree();
Je pourrais comprendre avoir des problèmes si je traitant de typedefs, mais ceci est assez straightfoward, et les types des deux côtés sont de type syntaxtree*
.
Comment résoudre cette erreur frustrante?
Seigneur tout-puissant ... tu as raison. Merci d'avoir signalé l'erreur et pour la réponse rapide. Évidemment, je suis réveillé depuis trop longtemps. –