今天在调试程序的时候,遇到一个奇怪的事情,一开始担心是代码存在内存溢出引起的,花了半个小时没找到原因。
在吃饭的时候,突然想起可能是 strtok() 引起的,查找调用的函数,果然发现在函数中使用了 strtok()。
而现在的问题就是在另一段代码中先使用了 strtok(), 然后在没有结束前,又调用了一个内部使用 strtok() 的函数,导致了 strtok() 的嵌套调用。
所以在调试的时候,出现意料之外的情况。
为了安全起见,以后在函数内部还是不要用 strtok(), 我用 strstr 写了一个 strsepstr(),来代替 strtok()。