gpt4 book ai didi

c strtok 从递归返回后返回 NULL

转载 作者:太空狗 更新时间:2023-10-29 17:16:29 25 4
gpt4 key购买 nike

当我没有在我的代码中调用同一个函数时,一切正常,但是当函数从递归返回时,变量 pch 突然为 NULL:

 void someFunction()
{
char * pch;
char tempDependencies[100*64+100];
strcpy(tempDependencies,map[j].filesNeeded);
pch = strtok(tempDependencies,",");
while (pch != NULL)
{
someFunction(); <- if i comment this out it works fine
pch = strtok (NULL, ",");
}
}

例如,当循环作用于字符串 file2,file3,file4 时,它正确地拆分了 file2 并将字符串修改为 file2\\000file3,file4 但对 pch = strtok (NULL, ","); 的下一次调用将 pch 呈现为 0x0。调用递归时是否有我不知道的事情?

最佳答案

strtok() 不可重入。如果您想在递归函数中使用它,则必须使用 strtok_r()

另请参阅:strtok, strtok_r

关于c strtok 从递归返回后返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com