VecMerge
- Macro
- August 22, 2025
Table of Contents
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.
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)
- In
Insert.h:653
:
/// FAILURE : Does not return on failure
///
#define VecInitClone(vd, vs) (VecDeinit(vd), VecMerge(vd, vs))
#endif // MISRA_STD_CONTAINER_VEC_INSERT_H
- 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) {
printf("Testing VecMerge\n");
// Create a vector of integers