ci sono linguaggi che non hanno questo tipo di problemi, tipo il C#.
In C tu sei liberissimo di scrivere nella memoria dove meglio credi (all'interno della spazio che il sistema operativo ti ha reso disponibile), il C presume che tu sappia cosa stai facendo.
Come ti dicevo l'unica cosa che puoi fare e inserire dei controlli, come possono essere degli assert.
ciao
sergio