summaryrefslogtreecommitdiff
path: root/vector.c
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2022-12-07 12:28:09 -0800
committerKai Stevenson <kai@kaistevenson.com>2022-12-07 12:28:09 -0800
commitf7a3feaacdab2f198c665ee11ff14a63ac84718e (patch)
tree0f032e5ebf8755c00a0d8fa167377444b84d3065 /vector.c
parent3b665031ee3b74842e181e3f0a738b77745f1f39 (diff)
added check detection, ran into problem with pointer/array syntax as arguments
Diffstat (limited to 'vector.c')
-rw-r--r--vector.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/vector.c b/vector.c
index b9d2fe4..61b0e81 100644
--- a/vector.c
+++ b/vector.c
@@ -1,3 +1,4 @@
+#include <stdlib.h>
#include "vector.h"
vector_t init_vector(int mx, int my) {
vector_t vector;
@@ -11,3 +12,33 @@ vectorp_t init_vectorp(vector_t* vectors, int length) {
vectorP.length = length;
return vectorP;
}
+vectorp_t remove_vector(vectorp_t vectorp, int index) {
+ vector_t* vectors = malloc((vectorp.length - 1) * sizeof(vector_t));
+ for(int i = 0; i < vectorp.length - 1; i++) {
+ int correctedIndex = i > index ? i - 1 : i;
+ if(i != index) {
+ vectors[correctedIndex] = vectorp.vectors[i];
+ }
+ }
+ return init_vectorp(vectors, vectorp.length - 1);
+}
+vectorp_t remove_vectors(vectorp_t vectorp, int* indexes, int indexCount) {
+ vector_t* vectors = malloc((vectorp.length - indexCount) * sizeof(vector_t));
+ int correctedIndex = 0;
+ for(int i = 0; i < vectorp.length - 1; i++) {
+ for(int j = 0; j < indexCount; j++) {
+ if(i == indexes[j]) {
+ continue;
+ }
+ }
+ vectors[correctedIndex] = vectorp.vectors[i];
+ correctedIndex++;
+ }
+ return init_vectorp(vectors, vectorp.length - 1);
+}
+vectorpp_t init_vectorpp(vectorp_t* vectorps, int length) {
+ vectorpp_t vectorPP;
+ vectorPP.vectorps = vectorps;
+ vectorPP.length = length;
+ return vectorPP;
+}