>> If you can convince the caller to keep track of that metadata themselves you obviously don’t need to. That can be important.
> That's why C23 introduce free_sized
Is it? C23 still has free, so there’s no guarantee callers wil use free_sized, so the allocator still has to be able to obtain a block’s size from a pointer.
Or do I overlook something?
I suppose by default it will just call free, but you can substitute different malloc implementations, maybe one with a malloc_no_header function