Bonjour a tous,

Bon tout d'abord : je vous presente ma classe , le vecteur.h :
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
 
#ifndef VECTEUR_H
#define VECTEUR_H
 
// Type vecteur
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
 
#define FAUX	0
#define VRAI	~FAUX
 
// Type vecteur de int
 
class vecteur
{
private:
	int taille ;
	float *tab ;
 
public:
	vecteur() ; //Constructeur par defaut 
	void affiche(); // Affiche la taille puis les composantes du vecteur
	vecteur(int); // Constructeur, affecte la taille au vecteur
	vecteur(vecteur&);// Constructeur par copie
	~vecteur(); // Destructeur
};
#endif // VECTEUR_H
voici mon vecteur.cc :
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
39
40
41
42
43
44
45
46
47
48
49
 
// Type vecteur
#include "Vecteur.h"
#include <iostream.h>
 
// Constructeurs
vecteur::vecteur()
{
	taille = 0 ;
	tab = NULL ;
}
 
//Constructeur par copie
vecteur:: vecteur(vecteur& v)
{
  int i;
  taille=v.taille;
  for (i=0;i<taille;++i)
    {
      tab[i]=v.tab[i];
      printf("%f",v.tab[i]);
    }
}
 
//Constructeur avec taille
vecteur:: vecteur(int n)
{
  int i;
  taille=n;
  tab=new float[n];
  for (i=0;i<taille;++i)
    tab[i]=0;
}
 
// Destructeur
vecteur::~vecteur()
{
  delete [] tab;
}
 
// affiche
void vecteur::affiche()
{
  int i;
  cout << taille << endl ;
 
  for (i=0;i<taille;++i)
      cout << tab[i] << endl;
}
Et enfin mon main.cc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
int main(int argc, char **argv)
{
	vecteur v ;
	v.affiche() ;
	cout << "PROGRAMME DE TEST" << endl;
 
	// Constructeurs
	vecteur v1(3);
	vecteur v2(v1);
}
Voila tout se compile correctement mais au moment de l'execution mon cher g++ me sort un beau "*** glibc detected *** free(): invalid pointer: 0xb7f21838 ***
0.0000000.0000000.000000Abandon"

Voila j'ai pas mal cherche le vecteur v1 se cree bienn mais impossible de faire la copie ...

Si qqun voit pourquoi...