That's not entirely true. std::allocator is used for allocating memory. Not exactly like the OP wants, but it can be done.
Just a rough idea:
1 2 3 4 5 6
unsignedchar *ptr = alloc.allocate(256) //allocate space for 256 chars (chars are 1 byte in size).
//returns a pointer to the location of the first allocated memory space.
Thanks for the answers. On similar lines, i was curious to know if there is a way to avoid fragmentation if memory is allocated and deallocated frequently. Right now I am using best fit technique to allocate memory. ie. i look for smallest memory block available in the pool, but it still leaves holes in the pool.