背景:我正在做一个项目,客户需要我们使用自定义动态内存分配,而不是从堆栈中分配对象。请注意,有问题的对象在编译期间具有已知的大小,甚至不需要动态分配。这让我想知道,
在哪些情况下,对象的自定义动态内存分配可能比从堆栈中分配对象更好?(在编译期间已知大小)
一个例子。如果Dog
是一个类,那么不仅仅是声明Dog puppy;
他们希望我们做
Dog* puppy = nullptr;
custom_alloc(puppy);
new(puppy) Dog(); // the constructor
// do stuff
puppy->~Dog(); // the destructor
custom_free(puppy)
custom_alloc
我们不知道真正的功能。为了使程序运行,给定的custom_alloc
函数将是malloc
. 并且custom_free
将是一个包装free
我不喜欢这种方法,并且想知道这何时真正有用,或者他们真正试图通过这样做来解决什么。