📄 app2_2a.cpp
字号:
// app2_2a.cpp : Simple application to explore heap behavior.
//
#include "stdafx.h"
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
#define HEAP_BLOCK_SIZE 2
// allocate heap block 1
char *pbuf1 = (char *) LocalAlloc(LPTR, HEAP_BLOCK_SIZE);
RETAILMSG(1, (TEXT("app2_2a block 1 (%d bytes) at %08Xh"),
LocalSize(pbuf1), pbuf1));
*pbuf1 = '1';
// allocate heap block 2
char *pbuf2 = (char *) LocalAlloc(LPTR, HEAP_BLOCK_SIZE);
RETAILMSG(1, (TEXT("app2_2a block 2 (%d bytes) at %08Xh"),
LocalSize(pbuf2), pbuf2));
*pbuf2 = '2';
// allocate heap block 3
char *pbuf3 = (char *) LocalAlloc(LPTR, HEAP_BLOCK_SIZE);
RETAILMSG(1, (TEXT("app2_2a block 3 (%d bytes) at %08Xh"),
LocalSize(pbuf3), pbuf3));
*pbuf3 = '3';
// deallocate heap block 1
RETAILMSG(1, (TEXT("app2_2a block 1 (%d bytes) at %08Xh freed"),
LocalSize(pbuf1), pbuf1));
LocalFree(pbuf1);
// deallocate heap block 2
RETAILMSG(1, (TEXT("app2_2a block 2 (%d bytes) at %08Xh freed"),
LocalSize(pbuf2), pbuf2));
LocalFree(pbuf2);
// deallocate heap block 3
RETAILMSG(1, (TEXT("app2_2a block 3 (%d bytes) at %08Xh freed"),
LocalSize(pbuf3), pbuf3));
LocalFree(pbuf3);
// allocate heap block 4
char *pbuf4 = (char *) LocalAlloc(LPTR, HEAP_BLOCK_SIZE);
RETAILMSG(1, (TEXT("app2_2a block 4 (%d bytes) at %08Xh"),
LocalSize(pbuf4), pbuf4));
*pbuf4 = '4';
// allocate heap block 5
char *pbuf5 = (char *) LocalAlloc(LPTR, HEAP_BLOCK_SIZE);
RETAILMSG(1, (TEXT("app2_2a block 5 (%d bytes) at %08Xh"),
LocalSize(pbuf5), pbuf5));
*pbuf5 = '5';
// allocate heap block 6
char *pbuf6 = (char *) LocalAlloc(LPTR, HEAP_BLOCK_SIZE);
RETAILMSG(1, (TEXT("app2_2a block 6 (%d bytes) at %08Xh"),
LocalSize(pbuf6), pbuf6));
*pbuf6 = '6';
// stay resident until manually terminated
for(;;) {
Sleep(1000);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -