From da792dda8a4cef4368afc1bb8656c0745f0cf427 Mon Sep 17 00:00:00 2001 From: lucielle Date: Sun, 14 Jun 2026 07:41:14 -0500 Subject: [PATCH] add array swap --- include/larray.h | 11 +++++++++++ test/array.c | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/larray.h b/include/larray.h index 17f294f..03c7aa5 100644 --- a/include/larray.h +++ b/include/larray.h @@ -12,6 +12,7 @@ typedef struct { LArray* l_array_create(); void l_array_delete(LArray* array); int l_array_append(LArray* array, void* item); +int l_array_swap(LArray* array, int indexA, int indexB); void l_array_clear(LArray* array); #ifdef L_ARRAY_IMPLEMENTATION @@ -38,6 +39,16 @@ int l_array_append(LArray* array, void* item) { return 0; } +int l_array_swap(LArray* array, int indexA, int indexB) { + if (array->count < (size_t)indexA || array->count < (size_t)indexB || indexA == indexB) return 1; + + void* itemA = array->items[indexA]; + array->items[indexA] = array->items[indexB]; + array->items[indexB] = itemA; + + return 0; +} + void l_array_clear(LArray* array) { free(array->items); array->items = NULL; diff --git a/test/array.c b/test/array.c index 386a9cd..b720d25 100644 --- a/test/array.c +++ b/test/array.c @@ -1,5 +1,5 @@ #define L_ARRAY_IMPLEMENTATION -#include "../include/array.h" +#include "../include/larray.h" #include int test_l_array() { @@ -19,6 +19,10 @@ int test_l_array() { if (array->count != 2) RETURN_CODE++; if (array->capacity != 8) RETURN_CODE++; + l_array_swap(array, 0, 1); + if (*(int*)array->items[0] != 5) RETURN_CODE++; + if (*(int*)array->items[1] != 15) RETURN_CODE++; + l_array_clear(array); if (array->items != NULL) RETURN_CODE++;