La première condition if entraîne une erreur de segmentation. Je ne peux pas vraiment comprendre pourquoi, puisque j'utilise des clauses similaires si avec des opérateurs relationnels ailleurs. Merci d'avance pour votre aide.Erreur de segmentation à l'aide d'opérateurs relationnels dans if condition
int foo(char *str1,char **str2, char **str3)
{
char *token1;
char *token2;
char *token = strtok(str1, "\"");
int spaces = strcmp(token," ");
int parenthesis = strcmp("{",token);
if((token == NULL) || ((spaces != 0) && (parenthesis != 0)))
{
printf("ERR.\n");
return 0;
}
token = strtok(NULL, "\"");
if(token == NULL)
{
printf("2ERR\n");
return 0;
}
token1= strtok(NULL, "\"");
if(token1 == NULL || strcmp(token1," -> ") != 0)
{
printf("3ERR\n");
return 0;
}
token2 = strtok(NULL, "\"");
return 1;
}
Où est déclaré parente dans cet extrait de code? – Arc676
Où les noms 'name_a' et' parente' sont-ils définis? Qu'est-ce que vous passez en tant que 'str1' Si c'est un littéral de chaîne ou une autre mémoire const,' strtok() 'provoquera des problèmes quand il essayera d'écrire' \ '0'' dans la chaîne. – Gerhardh
Etes-vous sûr que vous avez même atteint votre instruction 'if'? L'avez-vous exécuté dans le débogueur? – Gerhardh