簡體   English   中英

Calloc C風格的指針轉換為C ++轉換樣式

[英]calloc c-style pointer casting to c++ casting style

我想將以下類型轉換轉換為c ++樣式。 最好的方法是什么?

MemDigest *pMemDigestArray = (MemDigest *)calloc(numUniqueTypes, sizeof(*pMemDigestArray));

像這樣:

#include <vector>

std::vector<MemDigest> v(numUniqueTypes);


“這是什么C ++?”,我聽到你問。 這個:

  • 缺乏手動記憶和壽命管理

  • 缺少原始指針

  • 異常安全

  • 在運行時輕松調整容器大小

  • 避免未初始化狀態(通過對POD類進行值初始化)

vector是一個不錯的選擇,但這是更直接的等價形式,仍然是“ c ++風格”:

std::unique_ptr<MemDigest[]> pMemDigestArray(new MemDigest[numUniqueTypes]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM