Le projet my_secmalloc est une réimplémentation des fonctions de gestion de la mémoire telles que malloc(), free(), calloc(), et realloc(). Ces fonctions permettent d'allouer et de libérer de la mémoire de manière sécurisée en évitant les erreurs courantes comme les fuites de mémoire, les double-libérations ou les dépassements de tas.
Le projet peut être compilé en utilisant la commande make. Cela générera une bibliothèque partagée (libmy_secmalloc.so) et une bibliothèque statique (libmy_secmalloc.a).
Pour utiliser les fonctions de gestion de la mémoire du projet, vous devez inclure le fichier d'en-tête my_secmalloc.h dans votre code source et lier votre programme à la bibliothèque libmy_secmalloc.
my_malloc(size_t size): Alloue une zone de mémoire de la taille spécifiée et renvoie un pointeur vers le début de la zone allouée.my_free(void *ptr): Libère la zone de mémoire pointée par le pointeur spécifié.my_calloc(size_t nmemb, size_t size): Alloue une zone de mémoire contenant un tableau denmembéléments de taillesize. La zone allouée est remplie de zéros.my_realloc(void *ptr, size_t size): Réalloue une zone de mémoire précédemment allouée avecmy_malloc(),my_calloc()oumy_realloc(). La nouvelle zone allouée a une taille desizeoctets.
#include <stdio.h>
#include "my_secmalloc.h"
int main() {
int *ptr = my_malloc(sizeof(int));
*ptr = 42;
printf("Valeur : %d\n", *ptr);
my_free(ptr);
return 0;
}Le projet inclut également des tests unitaires pour vérifier le bon fonctionnement des fonctions de gestion de la mémoire. Les tests sont écrits en utilisant la bibliothèque criterion. Pour exécuter les tests, utilisez la commande make test.
Le projet my_secmalloc a été développé par Alexandre Meline et Thomas Devienne.