I am completely lost on this problem: Write a function that accepts an int array and the array s size as arguments. The function should create a new array that is one element larger than the argument array. The first element of the new array should be set to 0. Element 0 of the argument array should be copied to element 1 of the new array, element 1 of the argument array should be copied to element 2 of the new array, and so forth. The function should return a pointer to the new array.
The elmts parameter in element_shift is a local pointer. When the function ends, any changes to it are lost.
Use a reference to a pointer: void element_shift(int*& elmts, int size)
or a pointer to a pointer: void element_shift(int** elmts, int size)
or return a pointer to the new array: int* element_shift(int* elmts, int size)
The last implementation would require a use like so: elements = element_shift(elements,n);
You may also want to take the size parameter by reference as it should also change to reflect the new size.