how can i access a direct (absolute, not the offset) memory
address?
here is what i tried:
wrote a program that ask's for an address from the user,
creates a FAR pointer to that adress and shows it. then the
user can increment/decrement the value in that address by
pressing p(inc+) and m(dec-).
NOW, i compiled that program and opened it twice (in 2
different windows) and gave twice the same address to it.
now look what happen - if i change the value in
one "window" of the program, it DOES NOT change in the
other! even if they point to the same address in the memory!
here is the code snippet:
//------------------------------------------------------
#include <stdio.h> //INCLUDE EVERY KNOWN HEADER FILE
#include <conio.h> //FOR ANY CASE...
#include <iostream.h>
#include <dos.h>
#include <process.h>
main()
{
int far *ptr; //FAR POINTER!!!
long address;
char key=0; //A KEY FROM THE KEYBOARD
int temp=0;
clrscr();
cout<<"Enter Address:";
cin>>hex>>address; //GETS THE ADDRESS
clrscr();
(long)ptr=address; temp=*ptr; //PUTS THE ADDRESS IN THE PTR
cout<<"["<<hex<<(unsigned long)ptr<<"]="<<*ptr<<" = "<<
(char)(*ptr);
//SHOWS: [address]=value=ASCII symbol.
while (key!=27) //WHILE YOU DONT PRESS ESC.
{
while(!kbhit()) //WHILE KEY IS NOT PRESSED
{
if (temp!=*ptr) { temp=*ptr; clrscr(); cout<<"["<<hex<<
(unsigned long)ptr<<"]="<<*ptr<<" = "<<(char)(*ptr); };
//IF THE VALUE HAS CHANGED, CLEAR THE SCREEN AND SHOW
//AGAIN
if (key=='p') {key=0; (*ptr)++; } //INCREMENT VALUE
if (key=='m') {key=0; (*ptr)--; } //DEC. VALUE
};
key=getch(); //IF A KEY IS PRESSED, READ IT FROM THE
//KEYBOARD
};
return 0; //IF ESC WAS THE KEY, EXIT THE PROGRAM
}
//---------------------------------------------------------
No Answer is Posted For this Question
Be the First to Post Answer
What is lambda in c++?
Explain the extern storage classes in c++.
What is the difference between a type-specific template friend class and a general template friend class?
What is a static member?
What are the rules for naming an identifier?
In what situations do you have to use initialization list rather than assignment in constructors?
What is the difference between object-oriented programming and procedural programming?
What is type of 'this' pointer?
Explain one method to process an entire string as one unit?
Is there any function that can skip certain number of characters present in the input stream?
Difference between delete and free.
Explain stack unwinding.