Sirius さんが書きました:そうだったのですね。
atoiとはまた他の関数で それを引数に使った時には
ずっとその関数の効果が持続していたのでatoi関数の効果が持続しなかった理由がわからなかったんです。
その他の関数が何か分かりませんが、atoi関数は以下のような宣言がなされています。
コード:
int atoi( const char *str );
引数の文字列はconst修飾子により変更されないことが保障されているので、atoi関数実行後に引数の文字列が編集されていることはありません。
引数に指定されたポインタが変更される関数の例としてぱっと浮かんだのはstrtok関数ですかね。
コード:
char *strtok(char *s1, const char *s2)
第1引数に指定された文字列を第2引数で指定されたデリミタ(区切り文字)で分解しトークンを得る関数ですが、
第1引数の文字列中のデリミタは\0に置き換えられていくので、この関数の後で元の文字列を参照しようとしてハマることがあります(汗)
オフトピック
このコメントを編集するつもりが引用返信になっていて、引用のみのコメントを新規投稿してしまったので、削除しています。