| lab2/part1 | isort: selection sort over a heap array | malloc, free, pointer arithmetic, valgrind | Allocates an int array on the heap, fills it with random(), and sorts ascending and descending through one comparison-parameterised routine. Verified leak-free under valgrind. |
| lab3/part1 | mylist: generic linked list library | void pointers, function pointers, static libraries, ar | A void* linked list with addFront, addAfter, findNode, traverseList, popFront, removeAllNodes, and a pointer-only reverseList that allocates nothing. Built into libmylist.a and reused by every later lab, including the database behind this page. |
| lab3/part2 | revecho: linked list driver | function pointers, strcmp as a callback, library linking | Pushes argv onto a mylist in reverse, prints it with traverseList and a printString callback, then finds an element with findNode using strcmp cast to the comparator type. |
| concepts/memory | manual memory management thread | malloc, free, valgrind, ownership, leaks | Every lab from 2 onward was checked under valgrind and reported zero leaks and zero errors. The linked list library makes ownership explicit: the list stores void pointers and never frees what it did not allocate. |