• ベストアンサー

仮引数の変数をローカル変数に格納する理由について

プログラムの多くは、仮引数のポインタを一度ローカル変数に格納して使っていますが、なぜでしょうか?データが壊れてしまったりするのでしょうか・・・ typedef struct _LIST{ int value; struct LIST *next; struct LIST *prev; }LIST,*LIST_PTR; void func(LIST_PTR list, char *str){ LIST_PTR wk_list; char *wk_str; wk_list = list; wk = str;

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.1

質問にある例だと、func()の中でwk_listの値が変化して、しかも元々のlistの値が後で必要になる場合にそういうことをする必要があります。 逆に言うと、wk_listの値がfunc()の中で変化しないとか、元々のlistの値を後で使うことはないとかの条件であれば、ローカル変数で受ける必要はありません。 ポインタ以外の変数の場合も同じ。

deko31
質問者

お礼

ありがとうございます。 データ領域とかも関係しているのかな、なんて変に考えこんでました。

関連するQ&A