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:
- Adding all elements from
v2tov - Freeing the memory allocated for
v2->data - Resetting all fields of
v2to zero using MemSet
Success
v
Failure
Does not return on failure
Usage example (Cross-references)
Usage examples (Cross-references)
- In
VecCharPtr.c:389:
}
VecMerge(vec, &temp);
VecDeinit(&temp);
}- In
VecStr.c:359:
}
VecMerge(vec, &temp);
VecDeinit(&temp);
}- In
VecInt.c:336:
}
VecMerge(vec, &temp);
VecDeinit(&temp); // Clean up temp to prevent memory leak
break;- In
MisraDoc.c:125:
Strs dir_paths = VecInitWithDeepCopy(NULL, StrDeinit);
Scope(&dir_paths, VecDeinit, {
VecMerge(&dir_paths, &project.source_directories);
VecMerge(&dir_paths, &project.test_directories);- In
MisraDoc.c:126:
Scope(&dir_paths, VecDeinit, {
VecMerge(&dir_paths, &project.source_directories);
VecMerge(&dir_paths, &project.test_directories);
// recursively explore directories and get filenames
- In
Vec.Insert.c:268:
// Test VecMerge function
bool test_vec_merge(void) {
WriteFmt("Testing VecMerge\n");
// Create a vector of integers
- In
Insert.h:685:
do { \
VecDeinit(vd); \
VecMerge(vd, vs); \
} while (0)
Last updated on