diff options
author | Jasper | 2025-09-09 12:16:26 +0200 |
---|---|---|
committer | Jasper | 2025-09-09 12:16:26 +0200 |
commit | 5fd2f59d9f30253cb0c64a06a4a305e90b89e3ae (patch) | |
tree | 1fa55449eb91489a428eeb48307d7d314b208860 /matrix.c | |
parent | 29f92b1c7dad80b40654f561fbe82f5c1d9df7b2 (diff) |
Variadic functions to free matrices/vectors
Renamed 'matrix_freen' to 'matrix_free_many1'. Frees a dynamic array of
matrices.
Diffstat (limited to 'matrix.c')
-rw-r--r-- | matrix.c | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -9,6 +9,7 @@ #include <string.h> #include <math.h> #include <time.h> +#include <stdarg.h> Matrix *matrix_alloc(size_t m, size_t n) { @@ -28,7 +29,19 @@ void matrix_free(Matrix *mat) free(mat); } -void matrix_freen(Matrix **mats) +void matrix_free_many(size_t argcount, ...) +{ + va_list argptr; + + va_start(argptr, argcount); + + for (size_t i = 0; i < argcount; ++i) + matrix_free(va_arg(argptr, Matrix *)); + + va_end(argptr); +} + +void matrix_free_many1(Matrix **mats) { Matrix *mat, **p; p = mats; |