curiosidad si estoy creando una matriz de memoria compartida en la plataforma Windows, así:¿Se ha inicializado cero la matriz de memoria compartida devuelta por CreateFileMapping/MapViewOfFile?
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?
}
¿Es la matriz de memoria inicializado con 0 de la primera vez que llamo a este fragmento de código? Y si no, ¿cómo hacer que se inicialice cero?
La mayoría de los sistemas operativos no completan todas las páginas recientemente asignadas en el espacio de direcciones de un proceso (a menos que esas páginas estén compartidas o respaldadas por archivos de disco o periféricos). No hacerlo sería imprudente desde el punto de vista de la seguridad. –