質問: in_dt( &key); return 0; }
回答: ポインタは、「住所が書かれたメモ用紙」です。 住所そのものではありません。 最初に*keyと宣言したところでは、住所用のメモ用紙が作られただけです。どんな値が入っているかわかりません。 もしかすると、他の重要なデータのある住所(アドレス)が、 たまたま入っているかもしれません。 そうなったら大変で、データを壊してしまいます。 他人の住んでいる家に、勝手に土足で踏み込むようなものです。 先にデータを入れる場所を宣言し、 int *key; int key_data; key = &key_data; のようにしなければいけません。 関数の引数で*keyとしている場合には、それ以前の状況を調べることができないので、警告が出ません。