Bonjour,
Je rencontre un problème avec un pointeur.
Je le déclare en dehors de toutes fonctions pour qu'il soit global :
Dans ma fonc tion callback, je mets à jour ce pointeur de tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part char *Aff_User[MAX_USER];
Voici un extrait du main :
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; }
Par contre, Aff_User[0] dans la fonction callback_user affiche bien la valeur de argv liée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part rc = sqlite3_exec(db, pSQL[0], callback_user, 0, &zErrMsg);
Par contre, lors du retour sur la fonction main, Aff_User[0] affiche une autre valeur.
Voici un affichage de sortie :
On voit bien qu'après la fonction, la valeur a changée.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 : ÿ╚¡
Savez-vous pourquoi ?4210720 correspond à la valeur gauche
Be/Fl/.. correspondent aux valeurs droites
Partager