17-simple-memory-management/README.md
github-classroom[bot] 2ec9609b51
add deadline
2025-03-06 14:06:18 +00:00

44 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/KWNqcTtj)
### if.03.22 Procedural Programming
# Assignment Simple Memory Manager
With this assignment you shall implement a simple memory manager in C.
## Assignment Objective
Implementation of a memory management system as a replacement for malloc and free.
## Assignment
Technical details regarding the implementation of the memory manager are stated in file `mem_man.c`.
- Implement all functions declared in `mem_man.h`.
- Implement unit tests, at least those that are declared in `test_mem_man.h`
- Add additional unit tests as needed.
## Working Instructions
1. Implement all missing but required functions of all files mentioned below empty to make the
application compilable and runnable. Most unit tests will be red.
**--COMMIT--**
1. 'test_mem_man.c': Implement all declared unit tests. Run those tests, they shall be red, because non of the tested functions is implemented yet.
**--COMMIT--**
1. 'mem_man.c': Implement all functions defined by this file.
- Obey comments in header files and source code.
- Run the unit tests frequently and fix failures.
- Make all unit tests green.
**--COMMIT--**
1. 'test_mem_man.c': Extend the unit tests with additional test cases.
**--COMMIT--**
1. 'mem_man_app.c': Implement the main application according to the requirements state in the source file of the application.
**--COMMIT--**
1. Run and stabilize the application.
## Notes
- `general.h` contains macros for finding the minimum, maximum, and absolute value
- make clean test: This new make target for clearing the console, building, and running unit test is available.
- Sometimes changes are not properly detected by incremental builds. If something very strange
happens during compilation, try to run `make clean` followed by `make` to start a clean build.
This approach is also recommended after everything is done, because some compiler warning appears
only in clean builds.