Microsoft KB Archive/23977

{|
 * width="100%"|

Creating a Pointer to a Specific Memory Address

 * }

Q23977

5.10 6.00 6.00a 6.00ax 7.00 | 1.00 1.50 MS-DOS | WINDOWS kbprg -- The information in this article applies to: - Microsoft C for MS-DOS, versions 5.1, 6.0, 6.0a, and 6.0ax - Microsoft C/C++ for MS-DOS, version 7.0 - Microsoft Visual C++ for Windows, versions 1.0 and 1.5 -- SUMMARY ======= An application can create a pointer to access a specific address in memory with the FP_SEG and FP_OFF macros or by creating a far pointer in a long value. MORE INFORMATION ================ The FP_SEG and FP_OFF macros are defined in the DOS.H header file. These macros can retrieve or specify the segment or offset in a far pointer. The following code example demonstrates using the FP_SEG and FP_OFF macros to create a pointer to access video memory: char far *p; FP_SEG(p) = 0xb800; // point to segment of video memory FP_OFF(p) = 0; // set offset to first screen position For more information on the FP_SEG and FP_OFF macros, see the Microsoft C "Run-time Library Reference" or see the online help provided with the compiler. Another method to create a far pointer involves casting a long as a far pointer, as in the following example: p = (char far *)0xb8000000L; // video memory In the long value, the most significant 16 bits specify the segment and the lower 16 bits specify the offset. Additional reference words: kbinf 1.00 1.50 5.10 6.00 6.00a 6.00ax 7.00 KBCategory: kbprg KBSubcategory: CLngIss

Keywords : kb16bitonly

Issue type :

Technology : kbVCsearch kbAudDeveloper kbPTProdChange kbvc150 kbvc100 kbCCompSearch kbZNotKeyword3 kbCComp510DOS kbCComp600DOS kbCComp600aDOS kbCComp600axDOS kbCVC700DOS