CS 449 – Midterm 2 Practice Problems

 

1.)  For the program below, what will the stack look like if execution is paused at the line marked HERE? (You may ignore padding and alignment.)

 

 

int g(char *a) {

       //HERE

       return strlen(a);

}

 

 

int main()

{

       int y;

       y = g(“hello”);

       return 0;

}

 

 

 

 

2.) Answer the following about a memory region of 20 MB that has a chunk size of 1MB that is managed with a linked list using best fit allocation.

a.)  Assume the region is initially empty. Show the list after allocations of size 4, 6, 3, and 2 (in that order).

 

 

 

b.) From the list in part (a), free the 6 and 3 MB chunks. What is the resulting linked list?

 

 

 

c.) Finally, a request for a chunk of size 4 occurs. Show the linked list from part (b) with the new allocation.

 

 

3.) Assume the following structure definition:

struct person {

       int age;

       char name[100];

};

 

a.)    Write a function called compare_person that you could pass to qsort as a comparator, which arranges the people by decreasing age, with ties sorted in alphabetical order.

 

 

 

 

 

 

 

 

 

 

b.)    Write the call to qsort that would sort the array: struct person people[20];

 

 

 

4.) Write a macro that finds the minimum of its three arguments.