Lets say below is my char pointer array:

```
char *names[4] = {"abc", "def", "ghi", "jkl"};
for(int i = 0; i < 4; i++){
   cout << &names[i] << endl;
}

```

This will print 4 memory allocations:

```
0x7fff591c9b90
0x7fff591c9b98
0x7fff591c9ba0
0x7fff591c9ba8

```

My Question is why is it allocating 8 bytes for each element in the array? Can you help me in understanding how memory is allocated for each data type in C++? like for Char \*, char, in, int \*, string, etc., or quote any reference.

TIA