Langage C, plantage sur boucle while

Fermé
kalkos Messages postés 3 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 12 janvier 2009 - 12 janv. 2009 à 15:52
kalkos Messages postés 3 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 12 janvier 2009 - 12 janv. 2009 à 22:22
Bonjour,
je ne sais pas pourquoi mais mon programme plante a chaque fois qu'il doit aller dans une boucle while ("indiquer en dessous")
Pouvez vous m'aider a trouver pourquoi ?


Voici mes structures

typedef struct elem
{int value;
struct elem* prev;
struct elem* next;
}element;

typedef element* absvalue;


typedef struct
{ int sign;
absvalue abs;
}BigInteger;


BigInteger insert_tail (BigInteger S, int j, int r)
{
absvalue newel = (element*) malloc (sizeof(element));
newel->value = abs((j%10000+r)%10000);
newel->prev = NULL;
newel->next = NULL;

absvalue k = S.abs;

//c'est au niveau du while qui suis que vien le problème.\\
while (k->next != NULL)
{
k = k->next;
}

k->next = newel;
newel->prev = k;
return S;
}
A voir également:

4 réponses

Bonjour

Il nous manque l'initialisation de S. On peut supposer que S n'est jamais initialisé, S.abs non plus donc k->next provoque une erreur
0
kalkos Messages postés 3 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 12 janvier 2009
12 janv. 2009 à 17:08
S provien d'une autre fonction dans laquelle il est déclaré ainsi :
BigInteger S;
S.abs=NULL;
S.sign=0;
0
Si S.abs est NULL, alors k est NULL dans ta fonction et k->next est illégal.
0
kalkos Messages postés 3 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 12 janvier 2009
12 janv. 2009 à 22:22
oki, merci ;) je vais tester ca
0