std::make_shared<int>(10);是在栈空间还是堆空间?
来源:6-19 shared_ptr和weak_ptr代码演示
weixin_慕勒8023578
2022-02-21
看到函数说明有
This function uses ::new to allocate storage for the object. A similar function, allocate_shared, accepts an allocator as argument and uses it to allocate the storage.
那么是否是在堆空间呢?
写回答
1回答
-
quickzhao
2022-02-21
是在堆上。但是与普通的new分配空间不一样,STL有专门的内存池等机制去分配空间,这样可以防止内存碎片。具体可以看下STL的源码分析。
012022-02-21
相似问题