In C and C++, ZeroMemory() and memset() are the exact same thing.
/* In winnt.h */
#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
/* In winbase.h */
#define ZeroMemory RtlZeroMemory
Why use ZeroMemory() then? To make it obvious. But I prefer memset() in C or C++ programs.