Bonjour,

Je développe une fonction qui transforme un CStringList en char**, selon le code suivant:
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
 
void Appli::CStringListToPPChar(int& nbElements, char** tableau, CStringList* liste)
{
	nbElements = 1;
	tableau = new char*[1];
	tableau[0] = _T("");
 
	if (! liste->IsEmpty())
	{
		nbElements = liste->GetCount();
		tableau = (char**)malloc(nbElements*sizeof(char*));
		POSITION pos = liste->GetHeadPosition();
		int i = 0;
		CString elementCourant;
 
		while(pos != NULL)
		{
			elementCourant = liste->GetNext(pos);
			tableau[i] = elementCourant.GetBuffer(1024); //Bug ici
			//elementCourant.ReleaseBuffer();
			i++;
		}
	}
}
On pourrait se dire que c'est correct, sulement quand j'affecte sa valeur a , n'est pas modifié seulement l'élément en i, mais tout le tabeau, et dès que je refais un tour de boucle, toutes les valeurs se réinitialisent!!

J'avoue que la, je suis totalement sidéré et désemparé...
Et si j'ouvrais mon PC pour voir s'il y aurait pas un esprit frappeur dedans ca marcherait mieux à votre avis?

MErci d'avance pour votre aide
[/code]