Bonjour,
J'ai crée la fonction suivante :
Je l'appelle ainsi :
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 static void CopyValue(char* data, int start, char *value) { int i = 0; char *result; int size = 0; size = (strlen(data) - start); result = (char*)malloc(size); for (i = 0; i < size; i++) { result[i] = data[i + start + 1]; } result[size] = '\0'; value = result; }
D'après le débugger p possède la bonne valeur, et result et value obtienne les bonnes valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char *touri; //p est le résultat d'un strtok //7 est un valeur pour décalé ma copie, ne pas la commencer au début de p. CopyValue(p, 7, touri);
Pourtant, toujours d'après le débugger (et des puts) touri reste non initialisé.
Comme si tout était détruis à la fin de la fonction.
Pourtant je pensé ici faire un passage par référence, est même si result est supprimé, comme value est conservé, je devrais conservé les données non ?
Je ne comprends plus, c'est dure de repassé du C#, un langage managé, au C où il faut tout gérer soit même !!!
Je remercie d'avance toutes personnes se penchant sur mon problème.
Partager