This library is responsible for implementing a customized dynamic memory allocation system, with a choice between different algorithms and usage strategies — First-Fit, Next-Fit, Best-Fit. It implements a memory alignment system by processor architecture, direct access to the heap memory space through the linking process and, above all, a memory detection system, where every allocation is mapped with its name, size, address in the heap, line, file and function where they were allocated and free flag, being able to access this information and print it on the terminal at any time, during program execution time.
/libmemalloc
├── /inc
│ └── libmemalloc.h
├── /src
│ └── libmemalloc.c
├── /bin
│ ├── libmemalloc.o
│ ├── libmemalloc.a
│ └── libmemalloc.so
├── /readme
│ └── libmemalloc.svg
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
└── makefile
The libmemalloc repository is structured to separate different aspects of the project clearly:
-
Source Code Organization: The src and inc directories segregate implementation files from interface declarations, promoting modularity and ease of maintenance.
-
Build Outputs: The bin directory holds the compiled binaries, keeping them separate from the source code and preventing clutter in the main project directories.
-
Documentation and Assets: The readme directory contains visual assets that support the project's documentation, enhancing the clarity and professionalism of the project presentation.
-
Configuration and Metadata: Files like .gitignore, .gitattributes, LICENSE, and README.md provide essential information for version control, project licensing, and user guidance, ensuring that the project is well-documented and properly managed.
-
Build Automation: The makefile facilitates an automated and consistent build process, which is crucial for collaboration, continuous integration, and efficient development workflows.
Category | Technologies and Tools |
---|---|
Programming Languages | |
Build System | |
Version Control | |
Documentation | |
Support Tools | |
Operating System | |
IDE |
Title | Author / Year |
---|---|
Understanding and Using C Pointers: Core Techniques for Memory Management | by: Richard M. Reese, 2013 |
The Garbage Collection Handbook: The art of automatic memory management | by: Anthony Hosking, 2011 |
C++ pointers and dynamic memory management | by: Michael C. Daconta, 1993 |
Efficient memory programming | by: David Loshin, 1999 |
Memory Management | by: Bill Blunden, 2002 |