フィボナッチ数を計算する簡単な関数を書きましたが、無限ループに陥ってクラッシュします。ここで何が問題なのかがわかりません。
#include <stdio.h>
int fib(int number, int *cache);
int main(int argc, char *argv[])
{
int cache[20] = {0};
int result = fib (3, cache);
printf("%d ", result);
}
int fib(int number, int *cache)
{
if (number == 0) return 0;
if (number == 1) return 1;
if (cache[number] != 0) return cache[number];
int result = fib(number - 1, cache) + (number - 2, cache);
cache[number] = result;
return result;
}