Bonjour,

J'ai crée la fonction suivante :
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;
}
Je l'appelle ainsi :
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);
D'après le débugger p possède la bonne valeur, et result et value obtienne les bonnes valeurs.

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.