Browse Source

fixed bug in KT_drop

Iver 1 month ago
parent
commit
a89f968d77
5 changed files with 21 additions and 8 deletions
  1. BIN
      builds/libkiyomitree.so
  2. BIN
      builds/main.bin
  3. 3 4
      changelog.txt
  4. 16 0
      src/launch program/main.c
  5. 2 4
      src/main/main.c

BIN
builds/libkiyomitree.so


BIN
builds/main.bin


+ 3 - 4
changelog.txt

@@ -1,4 +1,3 @@
--made file tree
--made functions
--added example program
--updated makefile
+-fixed bug in KT_drop
+-expanded example program
+-tested more stuff

+ 16 - 0
src/launch program/main.c

@@ -39,6 +39,8 @@ int main(){
     // remove B from array
     KT_drop(&array, 2);
     
+    print_elements(array);
+
     // add D to end of array
     KT_append(&array, d);
 
@@ -49,5 +51,19 @@ int main(){
 
     print_elements(array);
 
+    // remove elements one by one
+
+    KT_drop(&array, 0);
+    print_elements(array);
+
+    KT_drop(&array, 0);
+    print_elements(array);
+
+    KT_drop(&array, 0);
+    print_elements(array);
+
+    KT_drop(&array, 0);
+    print_elements(array);
+
     return 0;
 }

+ 2 - 4
src/main/main.c

@@ -30,8 +30,6 @@ void check_size(void*** array){
             printf("realloc failed\n");
 
         *array = (void**)(temp) + 2;
-    
-        printf("%ld elements now in array \n", *((size_t*)(*array)[-1]));
     }
 }   
 
@@ -86,6 +84,6 @@ void KT_drop(void*** array, size_t index){
     size_t* existing_elements = (size_t*)(*array)[-1];
 
     (*existing_elements)--;
-
-    memmove(*array + index, *array + index + 1, sizeof(void*) * (*existing_elements - index - 1));
+    
+    if (*existing_elements != index) memmove(*array + index, *array + index + 1, sizeof(void*) * (*existing_elements - index));
 }