Why does this code generate a seg fault
8 void fib(int **fib_sequence, int n) {
 19     *fib_sequence = malloc(sizeof(int) * n);
 20     for (int i = 0; i < n; i++) {
 21       if (i < 2) {
 22           *fib_sequence[i] = i;
 23       } else {
 24           *fib_sequence[i] = *fib_sequence[i - 2] + *fib_sequence[i - 1];
 25       }
 26     }
 27 }