calloc c c样式指针转换为c++转换样式

calloc c-style pointer casting to c++ casting style

本文关键字:转换 样式 c++ 指针 calloc      更新时间:2023-10-16

我想将以下类型转换为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]);