-4

例如:如何知道一个std::string对象占用了多少内存,包括std::string使用的堆中分配的内存?

根据下面的答案:似乎没有流派的解决方案,我必须通过具体的实现来做到这一点。

4

2 回答 2

2

答案取决于所使用的数据结构,并且可能取决于编译器如何实现它。在 的情况下std::string,该capacity函数返回当前分配在其内部缓冲区中的元素数。在这种情况下,与char大小 1 一样,它实际上是字符串对象动态分配的字节数。

sizeof (std::string)返回仅包含在字符串类中的字节数,该类对于所有字符串对象都是常量,但不包括字符串对象管理的动态内存。

于 2013-08-26T03:01:43.640 回答
1

也许 :sizeof(mystring)+mystring.size()*sizeof(char)

于 2013-08-26T03:02:49.860 回答