

Memory locality - fruneau
https://techtalk.intersec.com/2014/02/more-about-locality/

======
amboar
Not to detract from the interesting difference between pointers and unbounded
arrays in a struct, but get_at() is surely broken. It looks like the condition
uses the wrong inequality:

int get_at(const struct foo_t *foo, int pos) { return foo->len >= pos ? -1 :
foo->data[pos]; }

!(foo->len >= pos) = (pos >= foo->len) => foo->data[pos] = foo->data[foo->len
+ x] where x >= 0, which is undefined.

It seems the author got caught up trying to be tricky, and the fix has the
bonus of reading more naturally:

return (pos < foo->len) ? foo->data[pos] : -1;

It is late though. Maybe my brain isn't in gear...

