c++ - Is there a difference between the new and *alloc functions when using them in an allocator? -
assuming purpose write allocator, allocator serve me exercise; noticed libstdc++ uses new under hood, within std::allocator ( or equivalent classes within libstdc++, allocate actual memory, honest expecting function alloc family.
both new , *alloc family of functions homecoming void *, , allocate memory, design point of view there 1 shines on other? provide illustration of written new, or guidelines new, in case operator wins on alloc?
my new codebase targeted no older c++11, in case need frame of reference language specs.
ps
with new i'm referring new in global namespace .
there 2 major differences. first malloc , company homecoming null pointer if there no more memory, you'd have check that, , throw std::bad_alloc if null pointer back; operator new function frees of this, since throw std::bad_alloc if cannot allocate memory. sec user can replace operator new/operator delete functions; commonly done in debug builds track memory leaks , dangling pointers. (in practice, can malloc well, formally, doing undefined behavior.)
c++ c++11 memory-management new-operator allocator
No comments:
Post a Comment