fixed merge

This commit is contained in:
2026-08-20 04:08:07 -05:00
parent 4ea51c727d
commit d3aafcbee0
2 changed files with 14 additions and 6 deletions
+10 -2
View File
@@ -200,8 +200,16 @@ void keke_array_qsort_header(KekeArray *array, size_t start_header_size) {
// requires pre-sorted arrays
KekeArray *keke_array_merge(KekeArray *a, KekeArray *b) {
if(a->len == 0) return keke_array_clone(b);
if(b->len == 0) return keke_array_clone(a);
if(a->len == 0) {
KekeArray *r = keke_array_clone(b);
keke_array_set_len(b, 0);
return r;
}
if(b->len == 0) {
KekeArray *r = keke_array_clone(a);
keke_array_set_len(a, 0);
return r;
}
keke_array_reverse(a);
keke_array_reverse(b);
if(a->type_size != b->type_size) return NULL;
+4 -4
View File
@@ -143,14 +143,14 @@ int main(void) {
keke_array_foreach(array, set);
keke_array_qsort_header(array, sizeof(int));
/*keke_array_foreach(array, output);
puts("\n");
keke_array_foreach(array2, output);
puts("\n");*/
KekeArray *array5 = keke_array_merge(array, array2);
printf("Expected value:\n0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 5, 6, 7, 8, 9,\n");
keke_array_foreach(array5, output);
puts("\n");
keke_array_foreach(array, output);
puts("\n");
keke_array_foreach(array2, output);
puts("\n");
keke_array_free(array);
keke_array_free(array2);