every pointer variable takes a limited space accoding to the machine used. Far pointer gives the more space to store the address. the memory is prodected by operating system by segmenting it into segments.The whole application which runs on one system is in userspace and remaining system resourses are put in low memory. the far pointer manipulate such a momory
what is a far pointer?
Recommend me some good books on data structures and algos
In the old days of the 80286, there were near (16-bit) and far (16:16 = 20/24 bits) pointers. Memory was divided into segments of 64k bytes (16-bits) because of the 16-bit nature of the x86. The address bus supported 20 to 24-bits (1-16MB), so in order to address the larger area, segment registers were combined with 16-bit pointers to form the complete address. This architecture still exists on today's Pentiums, but it has become a non-issue. Windows uses a "flat" memory model where all segments point to the same place and instead of 16-bit offsets, there are 32-bit offsets. The FAR keyword has become unnecessary in modern x86 software.