我想将以下类型转换转换为 c++ 样式。最好的方法是什么?
MemDigest *pMemDigestArray = (MemDigest *)calloc(numUniqueTypes, sizeof(*pMemDigestArray));
我想将以下类型转换转换为 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]);