VecMerge

Table of Contents

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.

Note

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)

    /// FAILURE : Does not return on failure
    ///
    #define VecInitClone(vd, vs) (VecDeinit(vd), VecMerge(vd, vs))
    
    #endif // MISRA_STD_CONTAINER_VEC_INSERT_H
    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) {
    printf("Testing VecMerge\n");
    
    // Create a vector of integers

Share :