Accessing Run-Time Storage
If we allocate a cell by defining a variable, we can access it by using the variable's name or by dereferencing a pointer to the cell.
If we allocate cells at run time, we can access it only through a pointer.
num = 10; /* access by naming */
*p1 = 1000; /* dereferencing */
p2 = malloc(sizeof(int));
*p2 = 99999; /* only way is dereferencing */