Tableau en deux dimensions et structure.
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:
1 2 3 4 5 6
|
struct queryResult{
long rows;
long cols;
char*** resultArray;
}; |
que j'initialise ainsi :
Code:
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:
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.