Bonjour,

Je rencontre un problème avec un pointeur.
Je le déclare en dehors de toutes fonctions pour qu'il soit global :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
char *Aff_User[MAX_USER];
Dans ma fonc tion callback, je mets à jour ce pointeur de tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
static int callback_user(void *NotUsed, int argc, char **argv, char **azColName){
  int i;
  for(i=0; i<argc; i++){
	if (j<=MAX_USER){
	Aff_User[j] = argv[i];
	j++;
	}
  }
  return 0;
}
Voici un extrait du main :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
  rc = sqlite3_exec(db, pSQL[0], callback_user, 0, &zErrMsg);
Par contre, Aff_User[0] dans la fonction callback_user affiche bien la valeur de argv liée.
Par contre, lors du retour sur la fonction main, Aff_User[0] affiche une autre valeur.

Voici un affichage de sortie :

Argv : Fl
Valeur de J : 0
Dans la fonction : 4210720 : Fl
Argv : Ce
Valeur de J : 1
Dans la fonction : 4210724 : Ce
Argv : Be
Valeur de J : 2
Dans la fonction : 4210728 : Be
Apres la fonction : 4210720 : ÿ╚¡
On voit bien qu'après la fonction, la valeur a changée.

4210720 correspond à la valeur gauche
Be/Fl/.. correspondent aux valeurs droites
Savez-vous pourquoi ?