#1 Le 22/03/2007, à 18:18
- dialloma
[Résolu] problème avec les vector de la STL
Bonjour tous le monde, çe fait plus d'une heure que je me casse la tête pour comprendre comment marche ce bout de procgramme c++ mais je n'arrive pas.
Il s'agit d'un tableau de pointeurs de int. J'ai fait de 2 manières une fonction qui calcul remplit et renvoie un vector de pointeur mais je ne m'attendais pas au resultats que j'obtiens. la première me renvoie seulement le dernier élément stocké et la deuxième une erreur de segmentation.
Aidez moi s'il vous plait .
#include <iostream>
#include <vector>
void f(std::vector<int *>& v);
std::vector<int *> g();
int main (){
std::cout<<"Test de f "<<std::endl;
std::vector<int *> v;
f(v);
std::cout<<*v[0]<<std::endl;
std::cout<<*v[1]<<std::endl;
std::cout<<"Test de g "<<std::endl;
std::vector<int *> w;
w = g();
std::cout<<*w[0]<<std::endl;
std::cout<<*w[1]<<std::endl;
return 0;
}
void f(std::vector<int *>& v){
std::cout<<"debut f "<<std::endl;
int *x, *y;
*x = 2; *y = 3;
std::cout<<"milieu f "<<std::endl;
v.push_back(x);
v.push_back(y);
std::cout<<"fin f "<<std::endl;
}
std::vector<int *> g(){
std::cout<<"debut g "<<std::endl;
std::vector<int *> v;
int *x, *y;
*x = 2; *y = 3;
std::cout<<"milieu g "<<std::endl;
v.push_back(x);
v.push_back(y);
std::cout<<"fin f "<<std::endl;
return v;
}
S'il vous plaît, j'aimerai bien avoir votre avis sur la meilleur methode des 2.
Merci d'avance
Dernière modification par dialloma (Le 22/03/2007, à 20:21)
Hors ligne
#2 Le 22/03/2007, à 18:57
- Luc Hermitte
Re : [Résolu] problème avec les vector de la STL
Aucune, tu n'as jamais alloué tes pointeurs.
#3 Le 22/03/2007, à 20:22
- dialloma
Re : [Résolu] problème avec les vector de la STL
Merci Luc Hermitte. J'ai corrigé mon problème ça marche. Merci beaucoup et bonne soirée
Hors ligne