no save
Assistance
Achat
News

Forum | programmation
[C] erreur de segmentation
tophe03, le jeu. 23 nov. 2006 à 17:13:12
Bonjour

Voici la fonction add:

polynome add(polynome p1,polynome p2)
{
int i,deg;
polynome p;

deg = maxint(p1.degre,p2.degre);
if(p1.degre == p2.degre)
{
while(p1.coef[deg] == -p2.coef[deg])
{
deg--;
}
}
new_pol(&p,deg);

for(i=p.degre;i>=0;i--)
{
if(i>p1.degre) p.coef[i] = p2.coef[i];
else if(i>p2.degre) p.coef[i] = p1.coef[i];
else p.coef[i] = p1.coef[i]+p2.coef[i];
}
return p;
}

Voici la fonction new_pol:

void new_pol(polynome *p,int deg)
{
int i;
if(deg>0)
{
p->degre = deg;
p->coef = (double*)malloc(deg+1*sizeof(double));
}
else
{
p->degre = 0;
p->coef = (double*)malloc(sizeof(double));
}
}

et la fonction maxint:

int maxint(int x, int y)
{
if(x > y) return x;
else return y;
}

c'est une fois dans le fonction maxint que je me rend compte que le degré et les coefs de p[1] ne sont pplus pris en compte (deg=0, coefs=0X0) alors que ceux de p[0] ne posent pas de problèmes. L'erreur de segmentation survient ensuite lors du calcul des p.coef[i].

Si ça ne vous aide pas, je mettrais tout le code mais c'est un peu long.

Merci
PrécédentChar Snipeur
nov. 06
mamiemando
nov. 06
Suivant
REPONSES
mamiemando
nov. 06
tophe03
nov. 06
mamiemando
nov. 06
Char Snipeur
nov. 06
tophe03
nov. 06
mamiemando
nov. 06
Char Snipeur
nov. 06
tophe03
nov. 06
Version Web
Réalisé par RedShift
no save