Witam.
Mam po prostu metlik w glowie:)
ma taki kodzik w C (pod dosa)
int main()
{
int a = 5;
cout << &a;
getch();
return 0;
}
Nie robi on nic inego jak wyswietla adres zmiennej a. Za kazdym razem(przynajmniej na moim kompie) jest to 1245064. Tak wiec postanowilem sobie odczytac wartosc owej komorki 1245064. Oczywiscie pomijajactaki trywialny sposob jak:
{
int a = 5, *b;
cout << &a << endl;
b = &a;
cout << *b;
getch();
return 0;
}
Po prostu chcialbym miec taka funkcje, ktora pozwolilaby mi odczytac wartosc dowolnej komorki pamieci. Tak wiec postanowilem szukac szczescia w assemblerze...
...ale po przypomnieniu sobie tematu o pamieci komutera okazalo sie, napotkalem na bardzo powazna niezgodnosc:( Otoz jak juz wyzej wspomnialem moja zmienna ma zarezerwowany obszar pamieci 1245060 - 1245064(12FF88h) a z informacji na stronie
http://student.uci.agh.edu.pl/~mikopec/kurs/indeks.html rozdzial pamięć wynika, ze moge zapisywac/odczytywac informacje tylko w obrebie jednego 1MB (1048557 bajtow - FFFFFh). Tak wiec o co chodzi?
Pytania:
- Moja zmienna jest poza pamiecia tego 1MB w ktorym moge zapisywac/odczytywac informacje?
- Za pomoca jakiej funkcji moge odczytac wartosc tej komorki (1245064) oraz kazdej innej?
- O co w tym wszystkim chodzi?
BTW. Mile widziane wszelkiego rodzaju sprostowania i wyjasnienia:)