Problème avec une fonction

elattarmh Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
elattarmh Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention   1
 
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