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

时间:2019-05-07 11:31:23

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

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

1 个答案:

答案 0 :(得分:6)

在典型的实现中,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个字节。

注意:控制块的大小(取决于实现)和共享指针所拥有的对象的大小不属于此范围。