The function will not behave as expected because of a bug within findMax's parameters.

computer science

Description

The function will not behave as expected because of a bug within findMax's parameters. The argument: int* pToMax, creates a local copy of the pointer passed to findMax. Because findMax is of return type void, the function returns nothing. Any changes made to pToMax are also deleted when the function returns. To fix this, I would change the argument to be passed by reference instead of value like so:

void findMax(int arr[], int n, int* &pToMax)

 

1c)

The main function has a problem in that a pointer is declared but not initialized to any memory address. As a result, a compilation error arises when computeCube is called with ptr as an argument. To fix this, I declared an int var and initialized it to some arbitrary value. I then assigned ptr to the address of var.

My solution:

int main()

{

                int var = 0;

                int* ptr = &var;

                computeCube(5, ptr);

                cout << "Five cubed is " << *ptr << endl;

}

 

1d)

                The implementation of strequal causes it to run into problems when comparing str1 and str2.  Instead of comparing the characters at the memory addresses that str1 and str2 currently point to, the while condition only compares the memory addresses. The if statement and return condition also run into the same problem. To fix this, I dereferenced the pointers with a * character whenever str1 and str2 were compared.


Related Questions in computer science category


Disclaimer
The ready solutions purchased from Library are already used solutions. Please do not submit them directly as it may lead to plagiarism. Once paid, the solution file download link will be sent to your provided email. Please either use them for learning purpose or re-write them in your own language. In case if you haven't get the email, do let us know via chat support.