Bonsoir,

j'ai un probl�me qui me prend la t�te, je vous le soumets en esp�rant que vos cerveaux seront mieux �quip�s que le mien...

voil�, j'ai une structure dans laquelle j'ai un objet path :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
typedef struct fichiers
{
	boost::filesystem::path path;
	/* ... */
} fichier;
et j'ai la fonction suivante :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
fichier * push(const boost::filesystem::path& _path)
{
	fichier *f = (fichier*)malloc(sizeof(fichier));
	if(!f)	exit(1);	// Si l'allocation a échoué
 	f->path = _path;
	return f;
}
Cette fonction est appel�e plusieurs fois, et � un certain moment (alors que le path semble valide, je peux l'afficher avec std::cout), �a plante � l'ex�cution sur �a :
Erreur de segmentation (core dumped)
A noter deux choses quand m�me :
1) le r�pertoire sur lequel �a bloque ne change pas d'une fois sur l'autre
2) en revanche, lorsque je modifie la fonction et que je lui passe en argument le path au format std::string, puis que je fais
Code : S�lectionner tout - Visualiser dans une fen�tre � part
f->path = boost::filesystem::path(_path);
alors l�, �a plante quelques r�pertoires plus loin, et l'erreur est la suivante :
*** glibc detected *** ./Affichage: free(): invalid pointer: 0x080d647c ***
======= Backtrace: =========
/* ici la trace */
======= Memory map: ========
/* les infos m�moire */
Abandon (core dumped)

Et l� je ne vois pas le pourquoi du comment... Quelqu'un a une id�e de ce que j'ai mal fait ?


Merci d'avance !!