The variable e is a pointer to an array of n + 1 elements of type double.
Using the dereference operator on e gives you the base-type of e which is ” array of n + 1 elements of type double“.
The malloc call simply takes the base-type of e (explained above) and gets its size, multiplies it by n + 1, and passing that size to the malloc function. Essentially allocating an array of n + 1 arrays of n + 1 elements of double.