再帰呼び出しが不要なら通常のループで

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

ここでは敢えてC/C++で触れているが、もしかしたら他の言語でもありえるかもしれない。何らかの処理を行っている時に再帰呼び出しを行うときがあるが、実は再帰呼び出しは問題を引き起こす可能性がある。

というのも、再帰呼び出しは実際には関数を呼び出すということになる以上、関数のスタックが積み重ねられていき、最終的にはそれ以上積めなくなるからである(スタックオーバーフロー)。

そのような状態を防ぐためにも、不要な再帰呼び出しを行うことはせず、whileやforで対応可能な場合はそれを使用するようにすると良い。

タイトルとURLをコピーしました