零初始化全局运算符new分配的内存的首选方法是什么?

时间:2017-05-09 20:47:06

标签: c++11 winapi memory-management

为了刷新我生锈的C ++知识,我开始编写一个与旧版win32 API接口的跨平台库。偶尔,我需要动态分配内存块并将它们转换为FAM(灵活数组成员)结构。在尝试遵循建议的C ++实践时,我选择使用全局::operator new::operator delete

我能够找到运营商的示例用法;但是以这种方式分配的零初始化内存的推荐(和可移植)方法是什么?

根据对SO中其他帖子的观察:

  1. std::calloc()& std::memset()只应与相关的函数系列一起使用(std::malloc()std::realloc()等)
  2. 据我所知,ZeroMemory()是特定于平台的
  3. 我看过std::fill()& std::fill_n()用于数组和容器;我不记得曾经看到它们用于void*指向的内存块;也许这是有原因的。
  4. 我才开始使用全球operator new& operator delete,所以我对它们如何工作以及何时应该使用的基本假设也可能不完整。

0 个答案:

没有答案