Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


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

Post New Answer

More C++ General Interview Questions

Explain rtti.

0 Answers  


Array base access faster or pointer base access is faster?

0 Answers  


What are maps in c++?

0 Answers  


Write a program to get the value of sin (x) using a library function , when x is given in degrees.

1 Answers  


Explain object slicing in c++?

0 Answers  


What do you mean by stack unwinding in c++?

0 Answers  


Explain stack & heap objects?

0 Answers  


Explain virtual class and friend class.

0 Answers  


How many types of modularization are there in c++?

0 Answers  


#include<iostream.h> void main() { class x { public: int func(int) { cout<<"cool"; return 1; } } }

1 Answers   Infosys,


Am studying basic c++ programming, have been given the following assignment. Design a linear program to calculate the maximum stress a material can withstand given a force and a diameter of a circle. To find the required area pi should be defined. Have most of the program sorted out but am at a loss as to how to show the calculations required. Can anyone help?

0 Answers  


Is it possible to get the source code back from binary file?

1 Answers  


Categories