In C you can declare pointers to arrays, the syntax is just somewhat strange. You can even declare it as a pointer to a variable sized array with c99, eg:
void foo(size_t length, char (*x)[length]){
size_t size = sizeof(*x);
assert(size == length);
printf("sizeof(*x): %zu\n", sizeof(*x));
}