La deadHandler viene chiamata dal processo figlio? Cioè nel ramo (pid == 0) del l'if? Se è cosi dovresti tenere presente che il figlio è un processo separato dal padre e quindi i due lavorano in zone di memoria completamente indipendenti; questo significa che il valore di start a cui accede il figlio è quello che tale variabile aveva prima della fork, e anche se nel frattempo il padre ha nuovamente allocato spazio per start, lo ha allocato nel suo spazio di memoria, non in quello del figlio, in cui start resterà immodificato.
![]()