>G0
it’s a c idiom.
https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
essentially, the K struct is either an atom (t<0) or a header for an array (type in t, length in n). being a header, it is the first of a chunk of memory, with the rest of the memory (‘content’) described by the header.
part of the reason for making a value all contained in contiguous memory is locality (the info for the value is in one place). it also simplifies memory management. it’s certainly possible to use a G* instead of a G, for G0, but that’s not the way kdb+ works so you have to use a K value as declared in k.h.
best,
jack