erreur: struct a aucun membre nommé X

 #include <stdio.h>
#include <stdlib.h>
struct treeNode
{
*char word;
int NumberCnt; 
struct treeNode *rightPTR, *leftPTR; 
};
typedef struct treeNode node;
node *rootPTR = NULL;
void freeTree(node *currPTR)
{
if (currPTR!= NULL)
{
freeTree(currPTR -> leftPTR);
free(currPTR);
freeTree(currPTR -> rightPTR);
}
}
void printTree(node *currPTR)
{
if (currPTR != NULL)
{
printTree(currPTR ->leftPTR);   
printf("%d\n", currPTR->word);
printTree(currPTR ->rightPTR);  
}
}
int insertNode (char* input)
{
node *tempPTR = malloc(sizeof(node));
tempPTR -> word = input;
tempPTR -> NumberCnt=0;
tempPTR -> leftPTR = NULL;
tempPTR -> rightPTR = NULL;
if (rootPTR == NULL)
{   
rootPTR = tempPTR;
rootPTR -> NumberCnt++;
}
else 
{
int comp;
node *currPTR = rootPTR;
node *prevPTR = NULL;
while (currPTR != NULL)
{
comp = strcmp(input, (currPTR->word));
if (comp = 0)
{
printf ("Entry already exists");
return 1;   
}
else if (comp < 0)
{
prevPTR = currPTR;
currPTR = currPTR->leftPTR;
}
else if (comp > 0)
{
prevPTR = currPTR;
currPTR = currPTR->rightPTR;
}
}
comp = strcmp(input, (prevPTR ->word));
if (comp < 0)
{
prevPTR->leftPTR = tempPTR;
}
else if (comp > 0)
{
prevPTR->rightPTR = tempPTR;
}
return 0;   
}
return 2;
}
int search(char* input) 
{
if (input == rootPTR ->data)
{
printf("Node found %d\n", rootPTR->data);
return 0;
}
else
{
if (input < rootPTR ->data)
{
node *currPTR = rootPTR->leftPTR;
while (currPTR != NULL)
{
if (input == currPTR->data)
{
printf("Node found %d\n", currPTR->data);
return 0;
}
else if (input < currPTR->data)
{
currPTR = (currPTR -> leftPTR); 
}
else if (input > currPTR->data)
{
currPTR = (currPTR -> rightPTR);
} 
}
printf ("Node not in tree\n");
return 1;
}
if (input > rootPTR ->data)
{
node *currPTR = rootPTR->rightPTR;
while (currPTR != NULL)
{
if (input == currPTR->data)
{
printf ("Node found %d\n", currPTR->data);
return 0;
}
else if (input < currPTR->data)
{
currPTR = (currPTR -> leftPTR); 
} 
else if (input > currPTR->data)
{
currPTR = (currPTR ->rightPTR);
}
}
printf ("Node not in tree\n");
return 1;
}
}
return 2;
}
void fixWord(char* buff)
{
char* unfixed = buff;
char* fixed = buff;
while (*unfixed)
{
if (isalpha(*unfixed))
{
*fixed=tolower(*unfixed);
*fixed++;
}   
*unfixed++;
}
*fixed=0;
}
int main()
{   
FILE *ptr_file;
char buff [100];
//ptr_file = fopen ("sherlock.txt", "r");
ptr_file = fopen ("input.txt", "r");
if (!ptr_file)
printf("File read error");
while(fscanf(ptr_file, "%s ", buff ) != EOF)
{
int comparison = strcmp(buff, "endoffile");
if (comparison == 0)
{
return 0;
}
fixWord(buff);
insert(buff);
}
fclose(ptr_file);
}

J'ai ce code qui est un arbre binaire qui se lit dans le texte à partir d'un fichier et l'ajoute à un arbre binaire. J'ai une structure pour représenter un nouveau nœud qui prend une chaîne de caractères et un entier qui s'incrémente pour afficher le nombre de mots. J'ai d'abord eu cet arbre mis en place pour prendre en nombres entiers pour tester l'arbre de la fonctionnalité et il a très bien fonctionné, mais depuis la mise à jour de mon struct à prendre dans la chaîne et la incrémenté entier le compilateur se plaint de la structure ne contient plus aucun des membres de la structure. Je n'ai aucune idée de pourquoi ce qui se passe.

  • "*char mot;" doit être "char *mot."
  • rightptr n'est pas la même chose que rightPTR.
  • Cette question semble être hors-sujet parce que c'est simple typoes, peu probable pour aider quelqu'un d'autre dans l'avenir.
  • Désolé c'était une mauvaise question travaille depuis 8h du matin, grâce à vous triées mon problème.
InformationsquelleAutor Shaun1810 | 2013-11-17