我想了解爲什麼這段代碼給我一個分段錯誤!
research
是一個字符串,它打印我的令牌,但之後我有一個分段錯誤。
你能幫我嗎?分割錯誤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]);
}
如果沒有'MAX_TOKENS_PER_LINE'標記怎麼辦? –
除了上面的藍月亮的評論,你似乎也會加1到n兩次 - 一次在for循環中,一次在break行。我不知道這是否有意或無意? – FreudianSlip
很難相信這甚至應該打印第一個令牌...... – laune