[ NrmMyth @ 12.08.2006. 07:07 ] @
Imam ovako dvije aplikacije: Prva koja alocira neku memoriju na heapu, ispisuje adresu alociranog prostora i onda ceka. Code: int main( void ) { int *ptr = new int[3]; ptr[0] = 13; ptr[1] = 14; ptr[2] = 15; cout << "Data Adress = " << ptr << endl; // na ovoj pauzi se ukljuci drugi program koji izmjeni memoriju pod 'ptr' system( "pause" ); cout << "Current state:" << endl; cout << setw( 4 ) << ptr[0] << setw( 4 ) << ptr[1] << setw( 4 ) << ptr[2] << endl; system( "pause" ); delete[] ptr; return 0; } Druga koja pokusava preko adrese memorije iz gornje izmjeniti sadrzaj. Pokrene se dok gornja ceka. Code: int main( void ) { int add; cout << "Give me an adress: "; cin >> add; int* ptr; ptr = add; ptr[0] = 113; ptr[1] = 114; ptr[2] = 115; system( "pause" ); return 0; } - Prva greska: ne mogu explicitno dodijeliti adresu pokazivacu. - Druga sumnja: Nesto mi govori da ovakav pristup nece raditi iz cisto sigurnosnih zastita koje provode operativni sistemi. Koliko znam OS (bar win) dodijeli aplikacijama memorijski prozor van kojega ne mogu ici (opet sigurnost). U njemu onda adrese mogu biti relativne na pocetak tog prozora, a ne u ondnosu na pocetak globane memorije.... Pitanje se namece: Kako cu dijeliti memoriju medju procesima? Hvala. |