dup
Description:
Allocates byte_size
bytes of memory, and copies byte_size
bytes into it from mem
.
Note:
Use [func@GLib.memdup2] instead, as it accepts a gsize argument for byte_size
, avoiding the possibility of overflow in a
`gsize` → `guint` conversion
If mem
is `NULL` it returns `NULL`.
Example: Copy n bytes:
public static int main (string[] args) {
char[] data = {'h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!', '\0'};
// Copy the data into a typeless buffer:
// Do not copy arrays / classes / etc when you do not know what you are doing.
// You may break your ref counters / lose array length information / etc
void* copy = Memory.dup (data, (uint) (sizeof (char)*data.length));
print ("%s\n", (string) copy);
free (copy);
return 0;
}
valac --pkg glib-2.0 GLib.Memory.dup.vala
Parameters:
mem |
the memory to copy |
byte_size |
the number of bytes to copy |
Returns:
a pointer to the newly-allocated copy of the memory |
Namespace: GLib.Memory
Package: glib-2.0