Bonjour a tous,
Bon tout d'abord : je vous presente ma classe , le 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 #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
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
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; }
Voila tout se compile correctement mais au moment de l'execution mon cher g++ me sort un beau "*** glibc detected *** free(): invalid pointer: 0xb7f21838 ***
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); }
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...
![]()
Partager