2012-04-20 16 views
2

strtokを2回呼び出す必要があります。私が持っている問題は、最初のstrtokは内部strtokを実行した後にループを再開できず、最初のcharのポインタを失うことです。Strtok再帰呼び出しポインタの損失

ここで多くを説明するのは一例です。

メイン

convert_field機能で
tokens = strtok (stmt, ":"); 
     while (tokens != NULL) { 
      convert_field(tokens); 
      tokens = strtok (NULL, ":"); 
     } 

私は

tokens = strtok (sub_stmt, ".->//"); 
     while (tokens != NULL) { 
      convert_field(tokens); 
      tokens = strtok (NULL, ".->//"); 
     } 

答えて

5

strtokを行うに呼び出すことができないことを意味するリエントラント(ではありません関数が前の実行を終了する前に再び)、strtok_r(w hichはリエントラントです)。

関連する問題