c++ - 1000个共享指针占用多少内存?

标签 c++ c++11 shared-ptr smart-pointers

  1. (例如)1000 个共享指针需要多少内存?
  2. 是 16 x 1000 字节吗?
  3. 32 位和 64 位系统有什么不同吗?

最佳答案

在典型的实现中,std::shared_ptr holds only two pointers .

因此 1000 个共享指针占用 1000 * 2 * sizeof(pointer) 字节的内存。

  • 在遵循 ILP32 数据模型的所有 32 位系统上,指针的大小为 4 个字节。
  • 在遵循 LP64 数据模型(大多数 Unix 和类 Unix 系统)或 LLP64 数据模型(Microsoft Windows x86-64)的 64 位系统上,指针的大小为 8 个字节。

注意:控制 block 的大小(取决于实现)和共享指针共享所有权的对象的大小不是其中的一部分。

关于c++ - 1000个共享指针占用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56021624/

相关文章:

c++ - 如何仅将 shared_ptr 用于删除器?

c++ - 类似项目中的 MessageBox 行为

c++ - 如何在windows中使用openssl的静态库?

c++ - 'int [0]' c++ 的初始值设定项太多

c++ - Typedef 模板参数

c++ - 将 shared_ptr 或 unique_ptr 传递给 _beginthreadex

c++ - Vim 代码补全在包含标准 header 后不起作用

c++ - strcpy 函数不起作用

c++ - 检查 std::list 迭代器是否在没有访问容器的情况下结束

c++ - 我怎么知道谁持有 shared_ptr<>?