Non ho controllato tutto il codice, comunque il problema sembra essere nella chiamata ad AllocaMatrice: tu infatti passi come parametro il tuo puntatore che viene copiato, a questo punto, quanto allochi la matrice, il nuovo indirizzo viene assegnato ad una copia del puntatore e non al puntatore che tu hai nella main...

Ah! Inoltre manca una cosa fondamentale: alla fine del programma devi liberare la memoria che hai allocato!