美文网首页
5.7 对内存进行复制移动填充

5.7 对内存进行复制移动填充

作者: f675b1a02698 | 来源:发表于2017-09-14 16:15 被阅读0次

    效果

    源码

    #include

    #include

    #define MEM_BLOCK_SIZE 32

    //显示内存中的内容

    BOOL ShowMemContent(LPVOID lpMem, SIZE_T dwSize){

    BYTE lpShow[MEM_BLOCK_SIZE];

    INT i = 0;

    //防止栈溢出

    if (dwSize>MEM_BLOCK_SIZE){

    printf("溢出\n");

    return FALSE;

    }

    //复制到数组

    CopyMemory((LPVOID)lpShow, lpMem, dwSize);

    for (; i< dwSize; i++){

    printf("%.2X ", lpShow[i]);

    if (!((i + 1) % 16)){ printf("\n"); }//就是换行

    }

    printf("\n");

    return TRUE;

    }

    int main(int argc, PCHAR argv[]){

    HANDLE hHeap = GetProcessHeap();

    LPVOID lpSrc;

    LPVOID lpDis;

    //分配内存

    lpSrc = HeapAlloc(hHeap, 0,MEM_BLOCK_SIZE);

    lpDis = HeapAlloc(hHeap, 0, MEM_BLOCK_SIZE);

    //显示新分配的内存

    printf("HeapAlloc分配但不清零:\n");

    ShowMemContent(lpDis, MEM_BLOCK_SIZE);

    ZeroMemory(lpDis, MEM_BLOCK_SIZE);

    printf("ZeroMemory清零:\n");

    ShowMemContent(lpDis, MEM_BLOCK_SIZE);

    FillMemory(lpDis, MEM_BLOCK_SIZE, 0xBB);//使用0xBB填充

    FillMemory(lpDis, MEM_BLOCK_SIZE/2, 0xAA);//使用0xAA填充前半部分

    //CopyMemory(lpDis, lpSrc, MEM_BLOCK_SIZE);//复制内存

    printf("FillMemory有规律的填充:\n");

    ShowMemContent(lpDis, MEM_BLOCK_SIZE);

    //释放内存

    HeapFree(hHeap, 0, lpSrc);

    HeapFree(hHeap, 0, lpDis);

    getchar();

    return 0;

    }

    相关文章

      网友评论

          本文标题:5.7 对内存进行复制移动填充

          本文链接:https://www.haomeiwen.com/subject/drgqsxtx.html