I have been learning to program in C for the past few years and always used Casey’s approach to memory management - allocate a big memory “pool” at start and use memory arenas with PushSizes and stuff - also I use his scheme for temporary memory (I haven’t gone too far in the series yet so I just use basic push only scheme that Casey uses at start).
In between experimentations something has often come up - memory gets corrupted somehow - usually involving a linked list of some sort.
typedef struct node
struct node *Next;
typedef struct list
With list being stored at a fixed size memory arena, I don’t quite understand how that works - it seems to me that node would grow recursively - since every node has a pointer to another node inside it.
Does that “recursive nature” of it mean you can’t actually put the “Next” pointer in any place other than the end of the struct? I recall Casey said something about this at the very start of the series - but I’m not sure this is what he was referring to.
typedef struct world
List stored in a struct with more stuff after it - that’s when memory gets corrupted?