From f7a3feaacdab2f198c665ee11ff14a63ac84718e Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Wed, 7 Dec 2022 12:28:09 -0800 Subject: added check detection, ran into problem with pointer/array syntax as arguments --- vector.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'vector.c') diff --git a/vector.c b/vector.c index b9d2fe4..61b0e81 100644 --- a/vector.c +++ b/vector.c @@ -1,3 +1,4 @@ +#include #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; +} -- cgit v1.3.1