Einzelnen Beitrag anzeigen
Alt 25.09.2005, 21:22   #4
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi,

was ist daran ungewöhnlich?
die funktion ist so deklariert, dass sie einen void pointer zurückliefern kann und genau das macht sie.

beachte: void pointer != void

es wird hier also einfach ein untypisierter zeiger retour gegeben - etwas "gefährlich", außer man weiß, was man macht.

der fall "return 0" ist - zugegebenerweise etwas ungewöhnlich, aber durchaus möglich - es wird eine referenz auf die speicherstelle an adresse 0 retour geliefert.
und genau hier wirds problematisch - der aufrufende der funktion erhält zugriff auf den speicher an stelle 0 und kann dort irgendwas reinschreiben - und das führt dann wohl früher oder später zum programmabsturz - einer sog. "memory access violation"

eine typsichere programmiersprache wie z.B. C# würde soetwas nicht erlauben und bereits beim kompilieren einen fehler melden.

fg
-hannes
Biri ist offline   Mit Zitat antworten