簡體   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