ZstrDup
ZstrDup
Description
Duplicates a string. Creates a new null-terminated string by allocating memory and copying at most n characters from the source string.
Parameters
| Name | Direction | Description |
|---|---|---|
src |
in | Source string to duplicate. |
Success
Returns a pointer to the newly allocated duplicate string.
Failure
Returns NULL if memory allocation fails or if src is NULL.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
VecCharPtr.c:19:
return false;
}
*dst = ZstrDup(*src);
return *dst != NULL;
}- In
Memory.c:139:
}
char *ZstrDup(const char *src) {
return ZstrDupN(src, ZstrLen(src));
}- In
Memory.c:148:
}
*dst = ZstrDup(*src);
return *dst != NULL;
}- In
Vec.Complex.c:77:
// Copy name
if (name) {
item.name = ZstrDup(name);
} // Modify the original item and verify the vector's copy is independent
free(item.name);
item.name = ZstrDup("Modified");
item.values[0] = 99; // First, create a dummy item and add it to the vector
ComplexItem dummy = {0};
dummy.name = ZstrDup("Dummy");
dummy.values = NULL;
dummy.num_values = 0; // Create several dummy items to populate the vector
ComplexItem dummy1 = {0};
dummy1.name = ZstrDup("Dummy1");
ComplexItem dummy2 = {0};
ComplexItem dummy2 = {0};
dummy2.name = ZstrDup("Dummy2");
ComplexItem dummy3 = {0};
ComplexItem dummy3 = {0};
dummy3.name = ZstrDup("Dummy3");
// Add the dummy items using L-value semantics
// Add a dummy item first
ComplexItem dummy = {0};
dummy.name = ZstrDup("Dummy");
VecPushBackL(&vec, dummy);
Last updated on