Oppure

Loading
01/08/09 7:09
puffin
#include <iostream>

using namespace std;

int main(){ 
  
  double f=0.0;
  int k=0;
   cout<<&k<<endl<<&f;
   system("pause"); 

}




questo è un semplicissimo programma in c++ che visualizza gli indirizzi di memoria delle variabili, ho notato che ogni volta che rilancio il programma sotto linux gli indirizzi cambiano, (il chè mi sempra normalissimo), mentre sotto windows rimangono sempre gli stessi;:noway: come mai?
uso Dev-c++
Ultima modifica effettuata da puffin 01/08/09 7:12
aaa
01/08/09 7:31
theprogrammer
Il fatto che siano sempre gli stessi non mi pare strano, anzi, mi pare strano il contrario.

Sono comunque indirizzi virtuali non fisici di memoria.
aaa
01/08/09 7:42
puffin
?????????????????????
memoria virtuale?????
ma tutto il discorso re-indirizzamentro tramite la MMU non è del tutto trasparente al programmatore?
voglio dire facendo &(nomevar) non ottengo l'indirizzo in memoria principale?
aaa
01/08/09 7:47
theprogrammer
No ... assolutamente.

Ottieni l'indirizzo virtuale tra quelli assegnati al processo dal sistema.

La parte "trasparente" e' l'individuazione della cella di memoria fisica a partire dall'indirizzo virtuale. Quella non interessa chi programma ma e' il sistema a gestirla.
Ultima modifica effettuata da theprogrammer 01/08/09 7:48
aaa
01/08/09 7:50
puffin
ma allora il comportamento sotto linux ( per la precisione ubuntu ) da cosa dipende?
aaa
01/08/09 7:54
theprogrammer
Mah ... attualmente non ho modo di provarlo sotto Linux, ma quelle variabili sono allocate nello "stack" del processo in quanto sono interne alla funzione main.

Quindi e' possibile che, da esecuzione in esecuzione, l'indirizzo virtuale dello stack sia diverso (per vari motivi) ma ripeto, mi sembra un po' strano e approfondiro' la questione ...
aaa
01/08/09 8:02
puffin
grazie come sempre del tuo tempo
Ultima modifica effettuata da puffin 01/08/09 8:18
aaa
02/08/09 14:02
puffin
oggi fatto un esperimento.
ho disabilitato la memoria virtuale impostandola a 0 MB, come mai gli indirizzi rimangono ancora gli stessi sotto windows, possibile che veda ancora indirizzi virtuali?
aaa