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 :
ini_parseinstruct(&cfg_var, &varname, &varvalue);
sachant que la fonction pour parser est la suivante :
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);
} |
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.
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 **.
Partager