[c]próba zapisu do niezaalokowanego bloku pamięci


(troiP) #1

Mam programik który po uruchomieniu kończy się błędem naruszenia pamięci (próba zapisu do niezaalokowanego bloku pamięci).;/

#include 


int main(void)

{

	int *x = NULL;

	*x = 0;

	return 0;

}

Chciałbym go zmienić aby informował mnie w przypadku wystąpienia błędu ochrony pamięci wypisywał komunikat "Blad dostepu do pamięci". Chce tu użyć funkcję exit i procedurę obsługi SIGSEGV. w tej chwili co mi przychodzi do głowy to

extern void syserr(const char *fmt, ...);

(Metka Shadowsong) #2

Witam,

Znalazłem rozwiązanie polegające na zamianie wyjątku Win32 na obiekt C++ i potraktowanie go jak zwykłego wyjątku C++.

Zwróć uwagę na kod przykładowej aplikacji. Pamiętaj, żeby ustawić przełącznik /EHa w kompilatorze.

http://msdn.microsoft.com/en-us/library ... 80%29.aspx

Sprawdziłem w VS2010.

Pozdrawiam


(Xwars) #3

Przykład dla systemów zgodnych z POSIX: http://www.linuxquestions.org/questions ... ost3172693 .