Problème avec une fonction

Fermé
elattarmh Messages postés 8 Date d'inscription lundi 31 décembre 2012 Statut Membre Dernière intervention 7 mars 2013 - 28 févr. 2013 à 13:04
elattarmh Messages postés 8 Date d'inscription lundi 31 décembre 2012 Statut Membre Dernière intervention 7 mars 2013 - 28 févr. 2013 à 21:43
Bonjour,


à partir d'un tableau de points je veux afficher seulement ceux qui vérifient une équation pour cela j'ai écris la fonction suivant:[CODE]
typedef struct Point
{
float x;float y;float z;
};

Point *equation(Point a,Point b,Point tableau[taille])
{
Point *sorti=(Point *)malloc(taille*sizeof(Point ));
int cpt=0;
float equation;
float landa=-((a.x*b.x)+(a.y*b.y)+(a.z*b.z));

for(int i=0;i<taille;i++)
{
equation=((a.x*tableau[i].x)+(a.y*tableau[i].y)+(a.z*tableau[i].z))+landa;
if(equation==0.0)
{ sorti[cpt].x=p[i].x;sorti[cpt].y=p[i].y;sorti[cpt].z=p[i].z;cpt++; }
}
return sorti;
}[/CODE]
malheuresement elle me renvoit des valeurs qui n'existe plus dans le tableau initial !

cordialement

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
28 févr. 2013 à 16:51
if(equation==0.0)
{ sorti[cpt].x=p[i].x;sorti[cpt].y=p[i].y;sorti[cpt].z=p[i].z;cpt++; } 

C'est quoi "p" ??
Il faut aussi initialiser "sorti" avec quelque chose (éventuellement avec un else).
0
elattarmh Messages postés 8 Date d'inscription lundi 31 décembre 2012 Statut Membre Dernière intervention 7 mars 2013 1
28 févr. 2013 à 21:43
pardon, j'ai une faute là ! c'est tableau[i] et pas p[i]
{ sorti[cpt].x= tableau[i].x;sorti[cpt].y= tableau[i].y;sorti[cpt].z= tableau[i].z;cpt++; }
0