qua*_*ant 4 c++ arrays pointers
堆分配的 c 数组不保留任何大小信息,正如这里指出的:
但是,c++11 中的智能指针能够使用下标 ( []) 运算符重载使用数组版本存储内存和管理 c 数组:
std::unique_ptr<int[]> arr(new int[val]);
Run Code Online (Sandbox Code Playgroud)
当这个智能指针超出范围时,它可能会释放拥有的内存块,因此它必须将内存块的大小存储在某处。
arr假设这val是一个运行时变量,如何检索在上面的示例中分配的 c 数组的大小?