Двойное указание

int* x = (int*)malloc(sizeof(int)),

y = (int*)malloc(sizeof(int)),

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

*x = 14; *y = 15; *z = 16;

printf("(%d, %d, %d)\n", *x, *y, *z);

/* На экране имеем: (14, 15, 16) */

*z = *x;

printf("(%d, %d, %d)\n", *x, *y, *z);

/* На экране: (14, 15, 14) */

y = x; // !!! Память, отведенная при объявлении y, становится недоступной

printf("(%d, %d, %d)\n", *x, *y, *z);

/* На экране: (14, 14, 14) */

*x = -14; *y = -15; *z = -16;

printf("(%d, %d, %d)\n", *x, *y, *z);

/* На экране: (-15, -15, -16) */

Замечание. Память, отведенная при инициализации указателю y, становится недоступной ("подвисшей").