CreateFileMapping / MapViewOfFile返回的共享内存数组是否已初始化为零?

时间:2012-06-17 00:14:58

标签: c++ winapi shared-memory

如果我在Windows平台上创建一个共享内存阵列,那就好奇了:

HANDLE hFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE | SEC_COMMIT, 0, 1024 * 4, _T("mySharedMemName"));
if(hFile)
{
    VOID* pData = MapViewOfFile(hFile, FILE_MAP_ALL_ACCESS, 0, 0, 1024 * 4);

    //Is 'pData' array initialized with zeros the first time the 'hFile' is used?
}

第一次调用此代码片段时,内存数组是否用0初始化?如果不是,如何将其初始化为零?

1 个答案:

答案 0 :(得分:7)

来自documentation

  

操作系统页面文件支持的文件映射对象中页面的初始内容为0(零)。