如何检索智能指针数组的大小? (e..gstd :: unique_ptr <int []>)</int []>

时间:2015-02-25 22:38:13

标签: c++ arrays pointers

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

How can i find the size of a dynamically allocated array in C?

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

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

当这个智能指针超出范围时,它可能会释放所拥有的内存块,因此它必须在某处存储内存块的 size

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

1 个答案:

答案 0 :(得分:3)

同时new[] / delete[]malloc / free,大小确实存储在某处,但没有标准化的方法来访问该信息。