Problème pour convertir un entier en String
Bonjour,
J'utilise std::ostringstream de la bibliothèque sstream pour faire passer mes entiers sous la forme de chaîne de caractères.
Dans un programme tout simple, pas de souci, l'exemple suivant fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream out;
int solution = 8;
out << solution;
std::cout << out.str() << std::endl;
return 0;
} |
Mais quand j'intègre ça dans mon application multi-threadée, ça ne marche plus. J'utilise les Thread boost, j'appelle donc une méthode static de cette façon :
Déclaration dans MaClasse.h
Code:
1 2
|
static void thread_MonThread(MaClasse * MaClasse); |
Appel dans MaClasse.c
Code:
1 2
|
boost::thread thread_MonThread(boost::bind(&MaClasse::thread_MonThread,this)); |
dans ma MaClasse.
Voici l'allure de mon Thread (pour l'instant très simple) :
Code:
1 2 3 4 5 6 7 8
|
void MaClasse::thread_MonThread(MaClasse * pMaClasse)
{
std::ostringstream out;
int val = 8;
out << val;
std::string str = out.str();
} |
et à la ligne j'ai un seg fault. Je ne comprend pas pourquoi, je dois mal gérer quelque chose. J'ai essayé de faire passer ma variable "out" en attribut de MaClasse et d'appeler une fonction privée qui retourne la String résultat. Mais même résultat : seg fault. Si qqun sait d'ou cette erreur peut venir, je suis preneur...