Beware of struct padding.
sizeof(b.arr) != sizeof(b)
Consider:
#include <stddef.h>
#include <inttypes.h>
typedef struct Array Array;
struct Array {
int32_t data[8];
};
void foo(Array const* arr) {
size_t sz = sizeof(arr->data);
}