Erreur de segmentation dans une fonction

Fermé
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 19 sept. 2008 à 21:37
donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 - 19 sept. 2008 à 21:42
Bonjour,
j'ai une erreur de segmentation , avec lz debuggeur jai su que le probleme est à cette fonction
void insere_table(Liste **TableHash,  char  mot[500])
{
	/* calcule le hash du mot */
	unsigned int idx = hash_cle(mot);



	/* recherche du mot */
	Liste *p = TableHash[idx];
	printf("vvvvvvvvvvvv");
	while(p != NULL)
	{
	    printf("aaa");
		if(strcmp(p->mot, mot) == 0)
		{
			/* le mot est trouve */
			break;
		}
		p =p->suivant;
	}

	if(p == NULL)
	{
		/* le mot n'existe pas, insertion de celui ci */
		p = (Liste *)malloc(sizeof(Liste));
		if(p == NULL)
		{
			/* erreur d'allocation de memoire */
			printf("Erreur d'allocation mémoire\n");
			exit(0);
		}

		/* initialisation de la structure */

		p->freq = 1;
		strncpy(p->mot, mot, sizeof(p->mot));



		/* mise a jour des liens, insertion en debut de liste */
		p->suivant = TableHash[idx];
		TableHash[idx] = p;
		return;
	}

	/* le mot existe */
	/* ajout des coordonnees */

}


et plus precisement dans cette instruction :
Liste *p = TableHash[idx];


merci j'attends vos helps !!
A voir également:

1 réponse

donuts08 Messages postés 519 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 15 octobre 2008 39
19 sept. 2008 à 21:42
bonjour,

tu es sûr que TableHash[idx] te retourne un pointeur de Liste?

sinon j'ai remarquer que tu ne désalloue jamais le pointeur "p"
-1