Name
Byte Arrays -- arrays of bytes, which grow automatically as elements are added.
Description
GByteArray is based on GArray, to provide arrays of bytes which grow
automatically as elements are added.
To create a new GByteArray use g_byte_array_new().
To add elements to a GByteArray, use g_byte_array_append(), and
g_byte_array_prepend().
To set the size of a GByteArray, use g_byte_array_set_size().
To free a GByteArray, use g_byte_array_free().
Example 1. Using a GByteArray.
GByteArray *gbarray;
gint i;
gbarray = g_byte_array_new();
for (i = 0; i < 10000; i++)
g_byte_array_append (gbarray, (guint8*) "abcd", 4);
for (i = 0; i < 10000; i++)
{
g_assert (gbarray->data[4*i] == 'a');
g_assert (gbarray->data[4*i+1] == 'b');
g_assert (gbarray->data[4*i+2] == 'c');
g_assert (gbarray->data[4*i+3] == 'd');
}
g_byte_array_free (gbarray, TRUE); |
Details
struct GByteArray
struct GByteArray
{
guint8 *data;
guint len;
}; |
The GByteArray struct allows access to the public fields of a GByteArray.
g_byte_array_append ()
Adds the given bytes to the end of the GByteArray.
The array will grow in size automatically if necessary.
g_byte_array_prepend ()
Adds the given data to the start of the GByteArray.
The array will grow in size automatically if necessary.
g_byte_array_remove_index ()
Removes the byte at the given index from a GByteArray.
The following bytes are moved down one place.
g_byte_array_remove_index_fast ()
Removes the byte at the given index from a GByteArray.
The last element in the array is used to fill in the space, so this function
does not preserve the order of the GByteArray. But it is faster than
g_byte_array_remove_index().
g_byte_array_set_size ()
Sets the size of the GByteArray, expanding it if necessary.
g_byte_array_free ()
Frees the memory allocated by the GByteArray.
If free_segment is TRUE it frees the actual byte data.