int d_max;
で宣言したd_maxという変数をmovement();という関数の引数として
渡しているのですが、movement();の関数の前と後で何故か値が変化しています。

printf("movementに入る前のd_max=%d\n", d_max);
movement(cell, x, y, 0, d_max);
printf("movementに入った後のd_max=%d\n", d_max);

↑を実行すると、

movementに入る前のd_max=4
movementに入った後のd_max=4561248

のような出力になっちゃいます。d_maxはポインタで
渡してるわけではないのですが、なぜこのような現象が起きるのでしょうか?