配列の内容を初期化する方法【Windows API】

C言語では配列を確保しても初期化されていないため、そのまま使用すると予期しない 動作をする可能性があります。そこで、メモリの内容を予め初期化するための関数が 用意されています。C言語では「memset」関数を使用するのが一般的でしたが、WindowsではAPIとして「FillMemory」や「ZeroMemory」といった関数が用意されています。

#include <windows.h>
int main(int argc, char* argv[])
{
    char szBuff[256];

    // Windows APIではFillMemoryが用意されている
    FillMemory(szBuff, sizeof(szBuff), '\0');

    // Cの標準関数として memset が用意されている
    memset(szBuff, sizeof(szBuff), '\0');

    // 上記のようにゼロクリアが目的の場合は専用APIのZeroMemoryが便利
    ZeroMemory(szBuff, sizeof(szBuff));

    return 0;
}

 

Windows API

Posted by @erestage