, . , malloc 0x10, malloc 0x30. , :

`p1` is a pointer with value `0x10`,
which points to memory that contains the integer value `7`.
`p2` is a pointer with value `0x30`,
which points to memory that contains a pointer with value `0x10` (a copy of the value in `p1`),
which points to memory that contains the integer value `7`.
free(p1) :

, p1 *p2 , . , free(*p2) , . free(p2) 0x30.