我正在进行大学任务,并且一直在绕着一个奇怪的问题绕着我的脑袋,我的程序调用strtok
并永远不会返回。C程序问题永远不会从strtok()函数返回
我的代码如下所示:
int loadMenuDataIn(GJCType* menu, char *data)
{
char *lineTokenPtr;
int i;
lineTokenPtr = strtok(data, "\n");
while (lineTokenPtr != NULL) {
/* ... */
}
}
我看过了一堆在网络上的网站,但我不能看到什么错,我使用strtok
和方式我不能确定为什么它会我的代码会卡在行上lineTokenPtr = strtok(data, "\n");
任何人都可以帮我解释一下吗?
(使用OSX和Xcode中,如果任何区别)
你是否已经加入了调试器,你能否验证那个线路没有返回?如果是这样,什么是'数据'?它是否正确终止,而不是Unicode等? – 2011-05-03 03:07:30
'data'包含什么? – Marlon 2011-05-03 03:12:57
如果您想继续使用传递给'strtok'的字符串,则必须创建它的副本,因为'strtok'和'strsep'都会修改它。 – 2011-05-03 03:52:49