Bonjour a tous,

D'abord je voudrais m'excuser pour le "flood" de topics en ce moment, vu que j'en suis a mon quatrieme pour un meme projet. J'essaie autant que possible de limiter le nombre de questions, et c'est seulement quand je seche au bout de plusieurs heures et que je n'ai aucune autre alternative que j'en poste un, dans l'espoir qu'il soit aussi constructif aux autres.

Pour en revenir a mon probleme, le voici :

Polynome.cxx (uniquement les fonctions qui nous interessent ici)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
string Polynome::AffichePolynome ()
{
	if (Coefficients!=NULL)
	{
		cout<<Coefficients[0];
		for (int i=1; i<Degre; i++)
		{
			if (Coefficients[i]<0)
			{
				cout<<"-";
			}		
			else
			{
				if (Coefficients[i]!=0)
				{
					cout<<"+"<<Coefficients[i]<<"*x";
					if (i>1)
					{
						cout<<"^"<<i;
					}
				}
			}
		}
	}
	else
	{
		cout<<"POLYNOME_NUL";
	}
}
 
Polynome::~Polynome()
{
	if (Coefficients!=NULL)
	{
		delete[] Coefficients;
		Coefficients=NULL;
	}
}
Polynome.hxx (tout le fichier)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "RacineFonctions.hxx"
#include <string>
 
using namespace std;
 
#ifndef POLYNOME
#define POLYNOME
 
class Polynome : public RacineFonctions
{
	private:
	int Degre;
	double* Coefficients;
 
	public:
	Polynome(int=0, double* = NULL);
	Polynome(const Polynome&);
	~Polynome(void);
	double Evalue(int, double) ;
	Intervalle Evalue(int, const Intervalle&);
	string AffichePolynome(void);
 
	Polynome operator = (const Polynome&);
};
#endif
Main.cxx (tout le fichier)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include "Polynome.hxx"
 
int main ()
{
	double a[3] = {2.,-3.,1.};
	Polynome P1(2,a);
	P1.AffichePolynome();
	return 0;
}
Resultat :

Le compilateur me signale un Segmentation Fault.
Il n'a pas lieu si j'enleve P1.AffichePolynome(); du main.
Si je laisse le runtime utiliser le destructeur par defaut en mettant le mien en commentaire avec son prototype, j'ai un glibc detected suivi d'un tas de lignes incomprehensibles (qui correspondrait apparemment a un free() sur une variable non "malloquee").

Je sais que mon code presente quelques autres imperfections, mais je ne leur donne pas la priorite pour le moment. Merci de votre aide.

Edit : Le debogueur "DDD" arrive bien, dans la fonction AffichePolynome(), au "else" si je cree un Polynome sans parametres (donc il prend en fait les parametres par defaut), et au "if" si je cree un Polynome avec 2 et a en parametre. Dans les deux cas, il recoit un SIGVSEGFAULT juste apres l'execution de AffichePolynome(). C'est pour ca que je bloque, bien que cet outil m'ait pas mal depanne dans le passe.