【发布时间】:2019-09-25 01:24:50
【问题描述】:
- 1000 个共享指针占用(例如)多少内存?
- 是 16 x 1000 字节吗?
- 32 位和 64 位系统有区别吗?
【问题讨论】:
-
您是否包括指向的对象以及与每个对象相关的开销?此外,共享指针指向什么?
-
@Caleth 不。只有指针本身。我不认为指针的内存大小不会根据指向不同的对象而改变,对吧?
-
std::shared_ptr不是类型,它没有大小。sizeof(std::shared_ptr<int>)没有要求等于sizeof(std::shared_ptr<void>),但是我想不出有什么理由让它们不同 -
你可以用一个简单的
cout << sizeof(Whatever) << " " << sizeof(Whatever[100]) << "\n";自己测试一下,shared_ptr 很可能会持有一个或多个指针,所以它的大小取决于sizeof (void*),这意味着你会得到不同的结果 32 和 64 位
标签: c++ c++11 shared-ptr smart-pointers