繁体   English   中英

如何获取智能指针数组的大小? (例如std :: unique_ptr <int[]> )

[英]How can I retrieve the size of a smart pointer array? (e..g std::unique_ptr<int[]>)

堆分配的c数组不保留任何大小信息,如下所示:

如何在C中找到动态分配的数组的大小?

但是,c ++ 11中的智能指针可以使用下标( [] )运算符重载来存储内存并管理具有数组版本的c数组:

std::unique_ptr<int[]> arr(new int[val]);

当此智能指针超出范围时,可能会重新分配所拥有的内存块,因此它必须将内存块的大小存储在某个位置。

假设val是运行时变量,如何在上述示例中检索在arr上分配的c数组的大小?

使用new[] / delete[]malloc / free ,大小确实存储在某个地方,但是没有标准化的方式来访问该信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM