summaryrefslogtreecommitdiff
path: root/matrix.c
diff options
context:
space:
mode:
authorJasper2025-09-09 12:16:26 +0200
committerJasper2025-09-09 12:16:26 +0200
commit5fd2f59d9f30253cb0c64a06a4a305e90b89e3ae (patch)
tree1fa55449eb91489a428eeb48307d7d314b208860 /matrix.c
parent29f92b1c7dad80b40654f561fbe82f5c1d9df7b2 (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.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/matrix.c b/matrix.c
index 0a8925e..5038b91 100644
--- a/matrix.c
+++ b/matrix.c
@@ -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;