The flat memory model allows a programmer to address any location within a memory object on a contiguous basis. The DosAllocMem() function returns a 32-bit memory address, and not a segment selector as in previous versions of OS/2; hence, the programmer does not have to consider the 64KB segment boundary limitation. This allows the programmer to allocate a memory object of an arbitrary size up to 512MB (the process space address limit).