C + + implementation of memory pool (possibly with minor bugs)

Source: Internet
Author: User

Recently in learning C + + program performance optimization, read to the Memory Pool section. Write one by yourself, a small test should be no problem.

Memory block Memoryblock declaration file

MemoryBlock.h

#pragma once
#define USHORT unsigned short
#define ULONG unsigned long
#include <iostream>
using namespace Std;
Memory block
struct Memoryblock
{
USHORT m_nsize;//Total Allocated memory size
USHORT m_nfree;//number of allocated memory units
USHORT m_nfirst;//The first available memory unit location
memoryblock* m_pnext;//points to the next memory block
Char m_data[1];
void* operator new (size_t,const ushort& sum,const ushort&)
{
Return:: operator new (sizeof (Memoryblock) +sum*unit_size);/Request a memory block space
}
void operator Delete (void* del,size_t)
{
:: operator delete (DEL);//delete memory block space
}
Memoryblock (const ushort& sum,const ushort& unit_size)
: M_nsize (Sum*unit_size), M_nfree (sum-1), M_nfirst (1), M_pnext (0)
{
char* Pdata=m_data;
for (int i=1;i<sum;i++)//initialization 1 to Sum-1 point
{
*reinterpret_cast<ushort*> (PData) =i;
Pdata+=unit_size;
}
}
~memoryblock () {}

};

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.