二重ポインタってポインタが指してる先を変更したい時に使うんじゃないのか?
それかポインタ配列か

話は変わるけどこういうのはcがfree()されるとaもbもダングリングポインタになってしまうけど
検出されないのな
当たり前か
後からaやbを使いまわす可能性があるし

int main(void)
{
int *a, *b, *c;

c = (int *)malloc(sizeof(int));

if (c == NULL)
exit(1);

*c = 123;

a = b = c;

printf("%d %d %d\n", *a, *b, *c);

free(c);

return 0;
}