I'm thinking, if I read somewhere correctly, that * is only pointing an object that you are passing by reference, so anywhere you have in your cout statements myarray, since you pointed to that variable *myarray, you must put an ampersand infront of myarray...
@Alistjazz Actually he would not need to add the reference operator in his functions because they don't need to actually change anything in the parameters that they are passed. All they are doing is running calculation on the them and returning a new variable with the answers.
Also I can't seem to tell what you want to do with the find_length function (This is probably because I have been up looking at code for the last 24 hours), so not sure if it is running right at runtime or not. But everything else seems to be in order other then some minor text formatting so the user can tell what the results mean ect.
And dont use system("pause"); ;p use something like this instead
1 2 3 4 5
std::cout << "Press ENTER to continue...";
std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
Another reason you don't need to pass myarray by reference is it is a pointer anyway. Passing a pointer by value only copies the pointer itself, not the object pointed to, so the overhead associated with passing by value is quite minimal. There's nothing wrong with passing a pointer by reference, but it's not really as useful as it is with larger objects, unless you are intending to manipulate the pointer itself and not the data pointed too. On a side note, array names are seen by the compiler as a pointer to the first element of the array so when passing the array to a function you can use array or pointer notation. IE: