[英]How can I retrieve the size of a smart pointer array? (e..g std::unique_ptr<int[]>)
堆分配的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.