もち。

『Hacking 美しき策謀 第2版』(第5刷) 20pのfactorialの例について

プログラミングが苦手なのでExploitでも学びつつ頑張ろうと思って読んでるとこ。

そこで、疑問に思ったところを1つ。

 

20pに階乗を計算する関数factorial()の例が載っている。以下にそれを引用する。

int factorial(int x)

{

    int i;

    for(i = 1; i < x; i++)

        x *= i;

    return x;

 }

これを

int a = 5, b;

b = factorial(a);

で呼び出すとb = 120になると書いている。

しかし、これだとループのたびにxの値も大きくなるから止まらないんじゃないですかね。

 

実際に試してみるとintの範囲超えてマイナスになるまで回り続けました。

ミスかな?