J'essaie de comprendre pourquoi ce code me donne une erreur de segmentation!
research
est une chaîne et elle imprime mes jetons, mais après cela, j'ai une erreur de segmentation.
Pourriez-vous m'aider s'il vous plait?Segmentation fault strtok
char buf[MAX_CHARS_PER_LINE];
strcpy(buf, research.c_str());
int n = 0;
const char * token[MAX_TOKENS_PER_LINE] = {};
for (n = 0; n < MAX_TOKENS_PER_LINE; n++)
{
if (n == 0) token[0] = strtok(buf, DELIMITERS);
else token[n] = strtok(0, DELIMITERS);
if (!token[++n]) break;
printf("%s\n", token[n]);
}
Que faire s'il n'y a pas de jetons 'MAX_TOKENS_PER_LINE'? –
En plus du commentaire de Blue Moon ci-dessus, vous semblez également ajouter deux fois 1 à n - une fois dans la boucle for et une fois sur la ligne de break. Je ne sais pas si c'est prévu ou non? – FreudianSlip
Il est difficile de croire que cela devrait même imprimer les premiers jetons ... – laune