A volte i bug possono causare un'eccezione di violazione di accesso alla memoria.Come viene attivata esattamente un'eccezione di violazione di accesso
In che modo viene attivata esattamente questa eccezione? Quale meccanismo funziona dietro le quinte?
Ha bisogno il supporto della CPU (a partire da quello della CPU?)/Dal sistema operativo (a partire da quale versione?)/Dal compilatore (a partire da quale versione?)
Edit:
Uno scenario specifico che voglio comprendere meglio:
Il seguente codice può causare un'eccezione di violazione di accesso.
TCHAR* czXXX= _T("ABCDEFG");
czXXX[0]= 'A';
Immagino che czXXX punti a un blocco di memoria di sola lettura, ma cosa succede esattamente?
Cosa succede se RAM e Disk sono entrambi pieni? –
@Scott 混合 理论 è normale che la RAM sia piena, o quasi completa - RAM non utilizzata è sprecata RAM. Poiché le prestazioni si riducono, più il computer deve utilizzare lo spazio di swap, in genere le persone cercheranno di eseguire solo il software che si adatta alla memoria. Una volta che lo spazio di swap è pieno, il kernel inizierà a restituire errori per allocazioni di memoria o ucciderà interi processi per liberare spazio. Cerca "OOM Killer" per i dettagli su questo. – sarnold