diff options
| author | verdant <im@verdant.ee> | 2026-07-28 15:22:02 +0800 |
|---|---|---|
| committer | verdant <im@verdant.ee> | 2026-07-28 15:22:02 +0800 |
| commit | 0ffd523ccb690301a1428286438b3bba86695977 (patch) | |
| tree | 01d88f359137418610670ecdb342d5a11ead2317 | |
| parent | 02f82a3cd9b65c2ddbeaf66df54dcf9b13511640 (diff) | |
| download | sf-0ffd523ccb690301a1428286438b3bba86695977.tar.gz sf-0ffd523ccb690301a1428286438b3bba86695977.zip | |
Add util function: free_pointer_array
This function iterates through each element of pointer array, frees
its memory, and finally free the array itself.
| -rw-r--r-- | mem.c | 17 | ||||
| -rw-r--r-- | mem.h | 1 |
2 files changed, 18 insertions, 0 deletions
@@ -5,6 +5,7 @@ #include <stdlib.h> #include "err.h" +#include "log.h" void *xmalloc(size_t size) { @@ -24,3 +25,19 @@ void *xrealloc(void *p, size_t size) return pmem; } + +void free_pointer_array(void **array, size_t len) +{ + if (!array) { + log_write(LOG_WARN, "free_poiner_array: array is NULL"); + return; + } + + for (size_t i = 0; i < len; i++) { + if (array[i]) { + free(array[i]); + } + } + + free(array); +} @@ -5,5 +5,6 @@ void *xmalloc(size_t size); void *xrealloc(void *p, size_t size); +void free_pointer_array(void **array, size_t len); #endif /* SS_MEM_H */ |
