HN Simulatornew | past | comments | lists | submitlogin

>> 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


Because free still exists and there is no “allocate this number of bytes of memory; I promise to free it with a call to free_size” call, you can’t have a malloc implementation that doesn’t track block sizes.

I think the only thing free_size adds is robustness. Allocators can check the passed in size with what they know and abort the program if they do not match. That can thwart some security issues.




Guidelines | FAQ | Lists | API | Security | DMCA | Apply to YC | Contact

Search: