Bonjour !
Alors j'ai un gros problème qui m'énerve sérieusement depuis plus d'une semaine!
Je ne sais vraiment pas comment l'expliquer... mais les jours passent et je dois bientôt rendre mon projet donc j'en ai marre de tourner en rond et de rester impuissante sans avancer.
Je vais essayer d'expliquer du mieux que je peux...(en évitant de donner du code entier car je suis en école et je ne suis pas seule a travailler sur ce projet)
J'ai créé des structures Polynome comme suit :
Code :
- typedef struct{
- int deg;
- double *coefficients;
- }polynome;
|
par exemple pour le polynome 5X^3 + 2X^2 + 4X +1 on a
Code :
- int deg=3;
- double coefficients [4] = {1,4,2,5}
|
A un moment donné, dans une méthode je crée un pointeur sur polynome :
Code :
- polynome *somme = new_polynome(3,coefficients);
|
J'affiche le polynome (avec la methode affiche_polynome(polynome *p)) j'obtiens:
Code :
- [5X^3 + 2X^2 + 4X +1]
|
Tout va bien.
Ensuite j'appelle une methode A qui n'utilise SURTOUT PAS le polynome somme que je viens de créer au dessus.
Je reaffiche somme et j'obtiens :
Code :
- [0X^3 + 2X^2 + 4X +1]
|
!!!!! je ne comprend rien !!!! dans la methode A je ne touche pas a somme, alors pourquoi le 5 a disparu?
Avez vous une idée de quoi ca peut être dû? comme je manipule pas mal de pointeurs est ce qu'à un moment donné j'accède à l'adresse où été stocké le 5 même si en aucune façon j'ai modifié les éléments de somme?
Est ce que je n'ai pas libéré de mémoire comme il fallait?
Je suis complétement perdue surtout que je ne maitrise pas vraiment bien ce qu'il se passe dans la mémoire...
Je vous remercie d'avance pour votre aide ...