J'essaie d'enrouler ma tête autour de C maintenant (principalement comment les pointeurs fonctionnent). J'essaye d'écrire cette fonction décrite ci-dessous:Problème avec la fonction d'insertion de la table de hachage dans C
/* EnterName entrez un nom dans une table de symbole. Renvoie une valeur booléenne indiquant si une entrée pour Nom était déjà répertoriée dans le tableau. Renvoie un argument contenant une référence d'entrée pour le nom.
De toute façon, voici le code que j'ai écrit et je ne sais pas comment le tester pour le moment. Vous vous demandez si quelqu'un pourrait regarder par-dessus et laissez-moi savoir si je fais bien.
Merci d'avance.
code ::
bool EnterName(struct SymTab *ATable,
const char *Name,
struct SymEntry * *AnEntry)
{
char name = *Name;
unsigned hashval = hash (&name);
struct SymEntry *ptr;
ptr = ATable->Contents[hashval];
while(ptr != NULL)
{
if(strcmp(ptr->Name, &name))
{
AnEntry = &ptr;
return true;
}
}
ptr = malloc(sizeof(struct SymEntry));
ptr->Name = &name;
AnEntry = &ptr;
return false;
}
Je ne sais pas ce que vous nous demandez de faire : compilez votre code pour vous? Écrire un harnais de test? Qu'avez-vous essayé jusqu'à présent? –
quel compilateur utilisez-vous? Si c'est gcc alors je vous recommande fortement de passer un niveau d'alerte élevé: '-Wall' –