Comment puis-je comparer la première lettre du premier élément d'un char **?question facile c: comparer premier caractère d'un tableau de caractères
J'ai essayé:
int main()
{
char** command = NULL;
while (true)
{
fgets(line, MAX_COMMAND_LEN, stdin);
parse_command(line, command);
exec_command(command);
}
}
void parse_command(char* line, char** command)
{
int n_args = 0, i = 0;
while (line[i] != '\n')
{
if (isspace(line[i++]))
n_args++;
}
for (i = 0; i < n_args+1; i++)
command = (char**) malloc (n_args * sizeof(char*));
i = 0;
line = strtok(line," \n");
while (line != NULL)
{
command[i++] = (char *) malloc ((strlen(line)+1) * sizeof(char));
strcpy(command[i++], line);
line = strtok(NULL, " \n");
}
command[i] = NULL;
}
void exec_command(char** command)
{
if (command[0][0] == '/')
// other stuff
}
mais qui donne une erreur de segmentation. Qu'est-ce que je fais mal?
Merci.
Vouliez-vous dire pour créer foo comme une liste de chaînes? Ou juste comme une seule chaîne? '* char []' n'est pas sensé, voulez-vous dire 'char * foo []'? Pourriez-vous montrer comment foo est déclaré? – Schwern
Quel est le type que vous recherchez? Vous voulez dire un tableau de chaînes ou quoi? Il n'y a pas de type comme '* char []'. – Chuck
question mise à jour. – nunos