Bonjour à tous,

Je souhaite creer un tableau en deux dimensions. Celui-ci stockera les éléments d'une table sql.

J'ai une structure qui ressemble à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
struct queryResult{
	long rows;
	long cols;
	char*** resultArray;
};
que j'initialise ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
struct queryResult res = {0,0,NULL};
Une fonction "execQuery" qui prend en paramètre un pointeur sur une fonction callback.
Ma fonction callback a comme paramètres un pointeurs sur la structure, le nombre de colonne de la table et un tableau contenant les résultats de la ligne et un autre les noms des colonnes.

Je ne sais pas si je m'y prend bien et si ce que j'essaye de faire est possible. Je vous montre mes premiers essais de cette fonction callback :

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
25
26
27
 
static int sqlite_callback(void* arg, int argc, char **argv, char **azColName){
	struct queryResult *res = arg;
	int i;
 
 
	char **resultLigne = NULL;
 
	if( ( res->resultArray = (char ***) realloc (res->resultArray, (res->rows +2) * sizeof(char**) ) ) ==NULL ){
		fprintf (stderr, "Memoire insuffisante\n");
		free (res->resultArray);
		res->resultArray = NULL;
		return 1;
	}
	for(i=0; i<argc; i++){
		if( ( resultLigne[i] = (char*) malloc ( strlen(argv[i]) * sizeof(char) ) ) ==NULL){
			fprintf (stderr, "Memoire insuffisante\n");
			free (res->resultArray);
			res->resultArray = NULL;
			return 1;
		}
		strcpy(resultLigne[i],argv[i]);
	}
	res->resultArray[res->rows]=resultLigne;
	res->rows++;
	return 0;
}
Est ce que je m'y prend bien avec mon tableau (enfin qu'est ce qui coince plutôt).

Merci de me mettre sur la piste.