我想從文件中讀取數據,對它進行標記並對其進行排序,但是當我運行它時,strtok的行爲不正常,有時它有時不起作用,並且我得到非常短/奇怪的標記。strtok行爲不一致
Valgrind的似乎認爲這是因爲strtok的是依靠一個未初始化的值(我認爲):
== == 7069條件跳轉或移動依賴於未初始化的值(一個或多個)
== 7069 ==在0x40B61A3:strtok的(strtok.S:160)
== 7069 ==由0x8048842:主(main.c中:58)
下面是函數,我認爲Valgrind是指控:
char * getNextToken(char * line){
char delim =',';
return strtok(line,& delim);
}
難道這是因爲我的大部分調用strtok行是NULL?
這裏是我的函數調用:
的strcpy(表演者,getNextToken(inputLine));
strcpy(title,getNextToken(NULL));
strcpy(charMin,getNextToken(NULL));
/等.../
我不知道這可能是造成這一點,我給strtok的所有值都是我所期待的。另外,我偶爾會得到一個堆棧砸錯誤,我不知道爲什麼。
這很有道理。謝謝! – jrisebor 2011-03-09 14:41:41
@ Snipe07:不客氣! – 2011-03-09 18:08:10