Hello les gens =)
J'ai essayé de commencer un morceau de code pour lire un fichier INI, jusque là rien de très alarmant, seulement ce morceau de code demande trois pointeurs de tableaux en argument, et là c'est le drame.
Basiquement j'appelle mon code avec les arguments suivants :
sachant que la fonction pour parser est la suivante :Code:ini_parseinstruct(&cfg_var, &varname, &varvalue);
Etrangement GCC ne m'a rien dit sur ma fonction, j'en ai déduit qu'elle était bonne, après si le traitement des tableaux en les passant en arguments en tant que pointeurs est un art autrement plus complexe j'aimerais savoir où est mon erreur.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
28
29 int ini_parseinstruct(char* pinstruction[], char* pval_name[], char* pval_value[]) { int i, j; for (i=0, j=0 ; *pinstruction[i] != '=' ; i++, j++) { *pval_name[j] = *pinstruction[i]; }//endfor if (*pinstruction[i] == '=') { pval_name[j] = '\0'; i++; } else { //PARSING ERROR }//endif for (int j=0 ; *pinstruction[i] != '\0' ; i++, j++) { *pval_value[j] = *pinstruction[i]; }//endif *pval_value[j] = '\0'; return (1); }
Le problème, concrètement, est que je ne peux pas "convert 'char (*)[30]' to 'char**", ce qui est étrange vu qu'il me semble qu'un char *[] équivaut à un char **.