• # Re: Petit problème en C (free)

    Posté par . En réponse au journal Petit problème en C (free). Évalué à 3.

    Il me semble que quand tu modifies la liste pour supprimer un element dans le premier cas if((l1!=NULL) && (value_i2==1)), tu ne fais que la moitié des mises à jour requises pour une liste doublement chainee.

    Tu a fais l1->previous->next = l1->next, mais il faudrait aussi faire un
    if (l1->next) { l1->next->previous = l1->previous; }

    La ta liste devient corrompue, et probablement qu'à un moment dans ton test avec une grosse matrice, il y a un cas ou 2 elements consécutifs d'une meme liste sont modifiés, ou le "previous" de l'un est resté un pointeur sur l'ancien element a present désalloué.

    Quant tu dis que ton plantage se fait toujours sur les memes valeurs, c'est parceque tes matrices de test sont toujours les mêmes ? Si tu les remplis aleatoirement, est-ce que tu initialise la graine du generateur avec la valeur de time() par exemple ? (sinon, une série de random() sera toujours la meme d'une execution à l'autre).