Temat: Access violation reading / writing location

Tego typu błąd może pojawić się podczas uruchomienia programu w trybie debugowania (F5 - Start Debugging).

Oznacza on, że próbujemy dostać się (odczytać / zapisać) do obszaru pamięci, do którego dostęp jest zabroniony.

Należy wówczas przyjrzeć się dokładnie kodowi, a najczęstsze powody takiego błędu to na przykład:

- do funkcji typu scanf przekazaliśmy wartość zmiennej, a nie jej adres

- zadeklarowaliśmy tylko wskaźnik na dynamiczny obszar pamięci, ale zapomnieliśmy o zaalokowaniu tego obszaru,

- przechodząc po elementach tablicy wychodzimy zbyt daleko w pamięć (bo np. w pętli for mamy <=, a powinno być <), lub jeżeli odejmujemy jakieś wartości od indeksów tablicy, pojawiają się indeksy ujemne

- pomyliliśmy wysokość tablicy dwuwymiarowej z jej szerokością, zamieniając indeksy lub warunki stopu pętli for miejscami

Nierzadko miejsca powodujące te błędy możemy wytropić dokładnie czytając i eliminując do zera wszystkie ostrzeżenia, jakie zgłasza nam kompilator!