From a1d4279c40612e6f98564db43192929b41c59d40 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Fri, 3 Jul 2020 23:57:45 -0400 Subject: Add remove function for vectors Removes element at an index. --- collections/vector/vector.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'collections/vector/vector.c') diff --git a/collections/vector/vector.c b/collections/vector/vector.c index 2ae748f..5c473a4 100644 --- a/collections/vector/vector.c +++ b/collections/vector/vector.c @@ -191,6 +191,22 @@ void *item; root->base[index] = item; } +void* vec_remove(root, index) +vec *root; +int index; +{ + void *tmp; + + if (!root || index > root->end || index < 0) + return NULL; + + tmp = vec_index(root, index); + memmove(root->base + index, root->base + index + 1, + (--root->end - index) * sizeof(void*)); + + return tmp; +} + void vec_swap(root, i, j) vec *root; int i,j; -- cgit v1.1