My C is rusty. Here are a few tricks I forgot and had to rediscover:

int array[42];
int *pointer = array + 8;

// This will be 8, not 8 * sizeof int
size_t x = pointer - array;

Number of elements in an array:

int array[42];

// x == 42 * sizeof int. Not what we want
size_t x = sizeof array;

// The right way to do it: y == 42
size_t y = sizeof array / sizeof array[0];

That is all.