From 5fd2f59d9f30253cb0c64a06a4a305e90b89e3ae Mon Sep 17 00:00:00 2001 From: Jasper Date: Tue, 9 Sep 2025 12:16:26 +0200 Subject: Variadic functions to free matrices/vectors Renamed 'matrix_freen' to 'matrix_free_many1'. Frees a dynamic array of matrices. --- matrix.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'matrix.c') diff --git a/matrix.c b/matrix.c index 0a8925e..5038b91 100644 --- a/matrix.c +++ b/matrix.c @@ -9,6 +9,7 @@ #include #include #include +#include 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; -- cgit v1.2.3