Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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