Skip to content

VecMerge

VecMerge

Description

Merge two vectors and store the result in the first vector.

Data is copied from v2 into v. If a copy_init method is provided in v, each element from v2 will be copied using that method. Otherwise, a raw memory copy is performed, which may be unsafe for complex or pointer-containing data.

This function (via VecMergeL) completely transfers ownership from v2 to v by:

  1. Adding all elements from v2 to v
  2. Freeing the memory allocated for v2->data
  3. Resetting all fields of v2 to zero using MemSet

Success

v

Failure

Does not return on failure

Usage example (Cross-references)

Usage examples (Cross-references)
                    }
    
                    VecMerge(vec, &temp);
                    VecDeinit(&temp);
                }
                    }
    
                    VecMerge(vec, &temp);
                    VecDeinit(&temp);
                }
                }
    
                VecMerge(vec, &temp);
                VecDeinit(&temp); // Clean up temp to prevent memory leak
                break;
                Strs dir_paths = VecInitWithDeepCopy(NULL, StrDeinit);
                Scope(&dir_paths, VecDeinit, {
                    VecMerge(&dir_paths, &project.source_directories);
                    VecMerge(&dir_paths, &project.test_directories);
                Scope(&dir_paths, VecDeinit, {
                    VecMerge(&dir_paths, &project.source_directories);
                    VecMerge(&dir_paths, &project.test_directories);
    
                    // recursively explore directories and get filenames
    // Test VecMerge function
    bool test_vec_merge(void) {
        WriteFmt("Testing VecMerge\n");
    
        // Create a vector of integers
        do {                                                                                                               \
            VecDeinit(vd);                                                                                                 \
            VecMerge(vd, vs);                                                                                              \
        } while (0)
Last updated on