Bonjour,
Je ne vois vraiment pas où pourrait être le bug, mais bug il y a sûrement ici:
Le constructeur de recopie est OK d'après mes tests précédents sur une autre version du programme, et j'alloue bien le bon espace mémoire. J'en déduis qu'il y a un problème avec delete [] aux ou SignEval* aux=vect, mais je ne vois vraiment pas pourquoi :-/
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 // initialisation effectuée qu'une seule fois: vect=new SignEval[allocSize]; // plus loin, répété un nombre arbitraire de fois: allocSize=2*allocSize+1; // * SignEval* aux=vect; // pour se rappeler de l'adresse de vect vect=new SignEval[allocSize]; // boucle pour récupérer les anciennes valeurs; currSize<allocSize depuis * for (int i=currSize-1; i>=0; i--) vect[i]=copie(aux[i]); // enfin on libère l'espace mémoire devenu inutile delete [] aux; // puis on ajoute le nouvel élément vect[currSize++]=copie(parametre_de_la_fonction)
J'obtiens une segFault avec l'utilisation de cette classe, et tout se passe bien en utilisant la STL (wiwiwi je sais utiliser la STL c'est bien mieux, mais je voulais la spécialiser pour ce dont j'ai besoin).
Merci d'avance,
Benjamin.
Partager