Memory Allocation

via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Mar 29 14:36:14 PDT 2017


On Wednesday, 29 March 2017 at 19:19:48 UTC, Enigma wrote:
> I have a memory buffer allocated using different methods. It is 
> simply a pointer and a size.
>
> I would like to be able to manage this buffer by treating it as 
> a memory pool or heap. I think I can use allocators to do this 
> but not sure how.
>
> Effectively I want something like new or malloc but it pulls 
> from the memory buffer rather than the program heap.
>
> // Allocated once at program start
> void* FancyBuffer = FancyAlloc(1000);
>
>
> Then when I want to use the buffer I'll do stuff like
>
>
>
> auto myptr = FancyMalloc(10);
>
> ....
>
> FancyFree(myptr);
>
>
> or whatever.
>
> The main thing is, I don't want to have to write my own 
> allocator to manage this buffer as it seems that D's allocators 
> would do a better job.
>
> I imagine that most of the time the buffer will not have more 
> than one piece of code using it(no overlapping uses) but since 
> I won't be 100% sure, I need allow for the cases where there 
> might be overlapping usage. (else I wouldn't ever have to worry 
> about "allocating or releasing" from it.
>
> Thanks.

It looks like you are looking for this: 
http://dlang.org/phobos-prerelease/std_experimental_allocator_building_blocks_region.html.


More information about the Digitalmars-d-learn mailing list