I know that an array declaration results in a block of memory being reserved, but with an array represented by a pointer this does not. As it contains the address of the first element of the array. 

But concerning how the size changes from pointing to a single long int, to a dynamically declared array of long integers, any explanation on the subject would be much appreciated.

Kind regards

Example :

```
long int *plint = 5; // size is the same as

long int *arr;

arr = (long int*)malloc(5*(sizeof(long int));

```

Is size arr is the same as size plint ?

If not how does it change size?