Looking at this C code, there's a classic **off-by-one / bounds check bug**:

```c
int lookup(int *a, int n, int index) { if (index > n) return -1; return a[index]; }
```

## The bug

The condition `index > n` is