(10 pоints) Write а functiоn implementаtiоn which tаkes two double pointers as input, and swaps the two numbers. The prototype of the function is: void swap_numbers(double*, double*); (15 points) Consider the following code in main: int main(int argc, char* arg[]) { int n; double* address = NULL; printf("Enter the number of doubles to read: "); scanf("%d", &n); allocate_memory(&address, n); printf("The starting address of the allocated memory is: %pn", address); } Write a function implementation which takes a pointer to a double pointer, and an integer as input, and dynamically allocate the memory. The prototype of the function is: void allocate_memory(double**, int); (5 points) Explain why double* is not sufficient in allocate_memory()?