• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dostęp do zmiennej przez dwa programy

Object Storage Arubacloud
+1 głos
163 wizyt
pytanie zadane 1 stycznia 2017 w C i C++ przez dociekliwy Nowicjusz (150 p.)

Witam, czytam książkę o C++ Praty.

Zakończyłem rozdział o wskaźnikach i aby utrwalić zdobytą wiedzę napisałem kilka programów, ale w jednym

przypadku spotkałem się z innym rezultatem od zakładanego i nie potrafię tego wytłumaczyć.

Założenie jest takie, piszę dwa programy, w pierwszym tworzę zmienną i sprawdzam adres pod jakim zmienna 

została utworzona .

W drugim programie tworzę wskaźnik i przypisuję do niego adres zmiennej utworzonej w pierwszym programie.

Kod pierwszego programu.

#include <iostream>
using namespace std;

int main()
{
    int a=125;
    cout<<&a<<endl;  //sprawdzam adres zmiennej a.
    cin>>a;          // aby program nie zakonczyl dzialania.
}

Pierwszy program cały czas działa , a ja w drugim do wskaźnika przypisuję adres zmiennej a i odpalam program.

Kod drugiego programu .

#include <iostream>

using namespace std;

int main()
{
    int *ws;
    ws=(int *)0x22fefc; //przypisuje do wskaznika adres pod
                        // którym pierwszy program zapisal zmienna a .
    cout<<*ws<<endl;
}

Problem jest taki że zamiast w drugim programie wyświetlić wartość zmiennej a zostaje wyświetlona jakaś 

przypadkowa liczba . Czemu tak?

Skoro wskaźnik wskazuje adres pod którym została utworzona zmienna a więc czemu drugi program nie wyświetla 125 tylko jakieś śmieci .

 

1 odpowiedź

0 głosów
odpowiedź 1 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
https://en.m.wikipedia.org/wiki/Virtual_memory?wprov=sfla1

Dostać się do pamięci innego procesu nie jest tak łatwo.
komentarz 2 stycznia 2017 przez morele123 Gaduła (4,790 p.)
Po wartości. Adresu mi nie widzi, jak dodaje manualnie to nie widzi w tym adresie nic.
komentarz 2 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
Wyłączyłeś optymalizacje kompilatora? W gcc służy do tego flaga -O0
komentarz 2 stycznia 2017 przez morele123 Gaduła (4,790 p.)
Miałem wyłączoną, włączona to samo.
komentarz 2 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
Jutro się nad tym zastanowie.
komentarz 3 stycznia 2017 przez unknown Nałogowiec (39,560 p.)
Nie wiem. Nie przychodzi mi nic do głowy, może nagraj jakiś film co dokładnie robisz bo na razie błądzę w ciemnościach(najlepiej wyślij mi na PW, żeby już nie robić burdelu w komentarzach).

Podobne pytania

0 głosów
1 odpowiedź 309 wizyt
pytanie zadane 19 stycznia 2021 w C i C++ przez Mytwi Nowicjusz (160 p.)
0 głosów
2 odpowiedzi 192 wizyt
0 głosów
2 odpowiedzi 3,701 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...