Bonjour,
Je développe une fonction qui transforme un CStringList en char**, selon le code suivant:
On pourrait se dire que c'est correct, sulement quand j'affecte sa valeur a
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++; } } }, 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!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part tableau[i]
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]
Partager