The correct way to initialize a buffer

Which of these is the correct way to initialize a buffer to zero?

WCHAR szBuffer[100]={};

WCHAR szBuffer[100]={0};

WCHAR szBuffer[100]={''};

WCHAR szBuffer[100]{};

WCHAR szBuffer[100];
wmemset(szBuffer, '', 100);


All of them are equivalent.

I would avoid (2) and (3) though, because to some they give a false impression that you can put any character in there to fill the array with it, while in reality it only controls the first character of the array, the rest are always zeroed.