Dando per scontato che a e' un doppio puntatore ad int, ovvero

int **a;

il codice e' corretto ...

Il segmentation fault non e' causato da questo codice, ma da altro ...