The answer is machine (CPU type) and operating system related. For DOS (of course Intel CPU), you can directly assign the absolute address of the block of memory to the memory pointer. For a near pointer, just offset need to be assigned. For a far pointer, both offset and segment. However you should code to protect the block of memory allocated in this way.