Единственная причина, по которой memset
/ ZeroMemory
предпочтительнее для такого рода инициализации, заключается в том, что функции WinAPI требуют / ожидают , что память будет инициализирована таким образом, т.е. если функции WinAPI ожидают, что их нули будутфизические нули - значения с шаблонами из всех нулей.
Имейте в виду, что разница между представлением нулевого значения некоторого типа и физическим шаблоном из всех нулей зависит от реализации компилятора, а не от ОС,Теоретически, компилятор Windows может использовать ненулевые битовые шаблоны для представления нулевых значений различных типов.Например, нулевой указатель может быть представлен ненулевым физическим значением в каком-то воображаемом компиляторе C или C ++ для Windows.(Конечно, никто этого не сделает).