ポインタが有効か判断する方法【Windows API】

ポインタってありますよね。基本的に難しいと言われていますが、 慣れてしまえばどうということはありません。しかし、初期化忘れなどで 得体の知れないバグを発生させてしまうこともあります。そこで使われるのが 「IsBadCodePtr」です。これを使えば簡単にポインタの指しているアドレスが 有効であるかの確認ができます。

int main(int argc, char* argv[])
{
    char *pszBuff;

    if (IsBadCodePtr((FARPROC)pszBuff)) {
        printf("無効なポインタ\n");
    } else {
        printf("有効なポインタ\n");
    }

    pszBuff = (char*)malloc(10);

    if (IsBadCodePtr((FARPROC)pszBuff)) {
        printf("無効なポインタ\n");
    } else {
        printf("有効なポインタ\n");
    }

    free(pszBuff);
    return 0;
}

 

Windows API

Posted by @erestage