码迷,mamicode.com
首页 > Windows程序 > 详细

28 windows_28_windows_heap 堆

时间:2016-06-10 12:27:42      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

windows_28_windows_heap 堆


    1. // windows_28_windows_heap.cpp : 定义控制台应用程序的入口点。
    2. //
    3. #include "stdafx.h"
    4. #include <windows.h>
    5. #include <stdlib.h>
    6. void HeapInfo( )
    7. {
    8. //默认堆句柄
    9. HANDLE hHeap = GetProcessHeap( );
    10. printf( "Default Heap:%p\n", hHeap );
    11. //所有堆的句柄
    12. HANDLE hHeaps[256] = { 0 };
    13. DWORD nCount = GetProcessHeaps( 256, hHeaps );
    14. printf( "All Heap:%d\n", nCount );
    15. for (DWORD nIndex = 0; nIndex < nCount; nIndex++)
    16. {
    17. printf( "\t%d: %p\n", nIndex + 1, hHeaps[nIndex] );
    18. }
    19. }
    20. void Heap( )
    21. {
    22. HeapInfo( );//堆测试
    23. //1、创建堆
    24. //HeapCreate
    25. HANDLE hHeap = HeapCreate( HEAP_GENERATE_EXCEPTIONS, 1024 * 1024, 0 );
    26. HeapInfo( ); //堆测试
    27. //2、分配内存
    28. //HeapAlloc
    29. CHAR *pszBuf = (CHAR*)HeapAlloc( hHeap, HEAP_ZERO_MEMORY, 100 );
    30. //3、使用内存
    31. printf( "HeapCreate:%p\n", hHeap );
    32. printf( "HeapCreateBuf:%p\n", pszBuf );
    33. //strcpy_s( pszBuf, ( rsize_t)strlen( "hello Heap\n" ), "hello Heap\n" );
    34. //printf( "%s", pszBuf );
    35. //4、释放内存
    36. //HeapFree
    37. HeapFree( hHeap, 0, pszBuf );
    38. //5、释放堆
    39. //HeapDestroy
    40. HeapDestroy( hHeap );
    41. HeapInfo( );//堆测试
    42. }
    43. int _tmain(int argc, _TCHAR* argv[])
    44. {
    45. //调试看代码
    46. CHAR *pszBuf = (CHAR*)malloc( 100 );
    47. Heap( );
    48. return 0;
    49. }





28 windows_28_windows_heap 堆

标签:

原文地址:http://www.cnblogs.com/nfking/p/5573500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!