1

我想将以下类型转换转换为 c++ 样式。最好的方法是什么?

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

2 回答 2

5

像这样:

#include <vector>

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


“这有什么 C++?”,我听到你问。这:

  • 缺乏手动记忆和生命周期管理

  • 没有原始指针

  • 异常安全

  • 在运行时调整容器大小很简单

  • 避免未初始化的状态(通过值初始化您的 POD 类)

于 2013-02-11T22:40:52.380 回答
0

vector是一个很好的方法,但这是一个更直接的等价物,仍然是“c++风格”:

std::unique_ptr<MemDigest[]> pMemDigestArray(new MemDigest[numUniqueTypes]);
于 2013-02-11T22:47:11.463 回答