Cコードで奇妙な問題が発生しています。strtok関数を使用して文字列を分割しようとしていますが、アクセス違反の例外が発生します。これが私のコードです:
char *token;
char *line = "LINE TO BE SEPARATED";
char *search = " ";
token = strtok(line, search); <-- this code causes crash
ただし、に変更char *line
するとchar line[]
、すべてが期待どおりに機能し、エラーは発生しません。
なぜ私がstrtokでその(私にとって奇妙な)振る舞いをするのか誰でも説明できますか?char*とchar[]は同じタイプで正確だと思いました。
アップデート
MSVC2012コンパイラを使用しています。