CS 161 Lab 7




5/5 - (2 votes)

Lab 7
Get checked off for up to 3 points of incomplete work from the previous lab within the
first 10 minutes of the lab.
In this lab, you can form a group of 2-3 individuals. You must be checked off together as a
group at the end of the lab. Although you perform tasks as a group, ensure that you
understand the work and ask questions to TAs as needed.
Design(3 pts), Code (4 pts)
To help you practice functions, you will write a short program that asks the user to enter a string
(get_string()), then makes a copy of the string, and takes the copy and changes all non-space
letters to dashes (set_replace_string()). The program then gets a letter from the user to search
in the original string and replace the dashes in the copy string with the letter found, returning the
number of letters found (get_search_replace()).
You should design first. You can have more functions, but you must have at least the three
below with the EXACT function prototypes. Each of your functions should have the proper function
void get_string(string *);
void set_replace_string(string, string *);
int get_search_replace(char, string, string &);
Write the function headers/descriptions for each of the functions above, as well as all the
functions you create. This includes information about parameters, return values, and pre/post
Design – Give as much detail as possible for the main function and all the functions above.
• Why do the function prototypes have the specific parameter types on them? • Why
do the functions have void or a return value?
• How do all the functions interact together?
Testing – Provide testing values with expected results.
• What do you plan to use as bad values? Good values?
• What do you expect to happen with bad values? Good values?
Get checked off by a TA before beginning to implement. This will help with logic and function
Now, incrementally write your functions and program.
Understand Pointers/Dynamic Memory(3 pts)
Write 3 different functions in C++ to create memory on the heap without causing a memory leak.
Hint: You will need to assign the address to a pointer that was created outside the function. Remember,
you can return an address or change what a pointer points to (the contents of a pointer) in a function by
passing the pointer by reference or by passing the address of the pointer.
What if you want to change the contents of what the pointer points to? Make a function that will set
the contents of the space on the heap. Do you still need to pass by reference or the address of the
pointer? Why or why not?
How will you delete the memory off the heap? Try doing it outside a function, now inside a function.
Make sure your delete function is setting your pointer back to NULL, since it is not supposed to be
pointing anywhere anymore.
You can check to see if you have any memory leaks using valgrind.
%valgrind program_exe
Show your completed work and answers to the TAs for credit. You will not get points if
you do not get checked off.