📄 testalloc.cpp
字号:
// TestAlloc.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "SmallMemAlloc.h"
#include "TestData.h"
typedef CSmallMemoryAlloc<32, 32> CMyAlloc;
//帮助性质的宏,书写方便和简洁
#define AllocateObject(CLASS) (CLASS*)CMyAlloc::Alloc(sizeof(CLASS))
void CSubClass1::DoAction()
{
printf("CSubClass1 Call virtual void DoAction()\n");
}
void CSubClass2::DoAction()
{
printf("CSubClass2 Call virtual void DoAction()\n");
}
void CBottomClass::DoAction()
{
printf("CBottomClass Call virtual void DoAction()\n");
}
int main(int argc, char* argv[])
{
//测试通常的数据
printf("测试通常的数据\n");
char* pStr1 = (char*)CMyAlloc::Alloc(18);
char* pStr2 = (char*)CMyAlloc::Alloc(21);
printf("String 1 was allocated at 0x%.8X\n", pStr1);
printf("String 2 was allocated at 0x%.8X\n", pStr2);
CMyAlloc::Free((BYTE*)pStr1);
ALLOC_DATA* pData1 = AllocateObject(ALLOC_DATA);
printf("ALLOC_DATA 1 was allocated at 0x%.8X\n", pData1);
ALLOC_DATA* pData2 = AllocateObject(ALLOC_DATA);
printf("ALLOC_DATA 2 was allocated at 0x%.8X\n", pData2);
CMyAlloc::Free((BYTE*)pStr2);
ALLOC_DATA* pData3 = AllocateObject(ALLOC_DATA);
printf("ALLOC_DATA 3 was allocated at 0x%.8X\n", pData3);
CMyAlloc::Free((BYTE*)pData1);
CMyAlloc::Free((BYTE*)pData2);
CMyAlloc::Free((BYTE*)pData3);
//测试带有虚函数的类
printf("\n测试带有虚函数的类\n");
vector<CBaseClass*> vBaseClass;
CBaseClass* pSub1 = AllocateObject(CSubClass1);
new(pSub1) CSubClass1();
vBaseClass.push_back(pSub1);
CBaseClass* pSub2 = AllocateObject(CSubClass2);
new(pSub2) CSubClass2();
vBaseClass.push_back(pSub2);
CBottomClass* pBottom = AllocateObject(CBottomClass);
new(pBottom) CBottomClass();
vBaseClass.push_back(pBottom);
for(int i=0; i<vBaseClass.size(); i++)
vBaseClass[i]->DoAction();
CMyAlloc::Free((BYTE*)pSub1);
CMyAlloc::Free((BYTE*)pSub2);
CMyAlloc::Free((BYTE*)pBottom);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -