| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>Arrays</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> |
| <link rel="home" href="index.html" title="GLib Reference Manual"> |
| <link rel="up" href="glib-data-types.html" title="GLib Data Types"> |
| <link rel="prev" href="glib-String-Chunks.html" title="String Chunks"> |
| <link rel="next" href="glib-Pointer-Arrays.html" title="Pointer Arrays"> |
| <meta name="generator" content="GTK-Doc V1.14 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> |
| <tr valign="middle"> |
| <td><a accesskey="p" href="glib-String-Chunks.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> |
| <td><a accesskey="u" href="glib-data-types.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> |
| <th width="100%" align="center">GLib Reference Manual</th> |
| <td><a accesskey="n" href="glib-Pointer-Arrays.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> |
| </tr> |
| <tr><td colspan="5" class="shortcuts"> |
| <a href="#glib-Arrays.synopsis" class="shortcut">Top</a> |
| | |
| <a href="#glib-Arrays.description" class="shortcut">Description</a> |
| </td></tr> |
| </table> |
| <div class="refentry" title="Arrays"> |
| <a name="glib-Arrays"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="glib-Arrays.top_of_page"></a>Arrays</span></h2> |
| <p>Arrays — arrays of arbitrary elements which grow |
| automatically as elements are added</p> |
| </td> |
| <td valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsynopsisdiv" title="Synopsis"> |
| <a name="glib-Arrays.synopsis"></a><h2>Synopsis</h2> |
| <pre class="synopsis"> |
| #include <glib.h> |
| |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray">GArray</a>; |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-new" title="g_array_new ()">g_array_new</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> zero_terminated</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> clear_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> element_size</code></em>); |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-sized-new" title="g_array_sized_new ()">g_array_sized_new</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> zero_terminated</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> clear_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> element_size</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> reserved_size</code></em>); |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a> * <a class="link" href="glib-Arrays.html#g-array-ref" title="g_array_ref ()">g_array_ref</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="glib-Arrays.html#g-array-unref" title="g_array_unref ()">g_array_unref</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>); |
| <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-Arrays.html#g-array-get-element-size" title="g_array_get_element_size ()">g_array_get_element_size</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>); |
| #define <a class="link" href="glib-Arrays.html#g-array-append-val" title="g_array_append_val()">g_array_append_val</a> (a, |
| v) |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-append-vals" title="g_array_append_vals ()">g_array_append_vals</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> len</code></em>); |
| #define <a class="link" href="glib-Arrays.html#g-array-prepend-val" title="g_array_prepend_val()">g_array_prepend_val</a> (a, |
| v) |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-prepend-vals" title="g_array_prepend_vals ()">g_array_prepend_vals</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> len</code></em>); |
| #define <a class="link" href="glib-Arrays.html#g-array-insert-val" title="g_array_insert_val()">g_array_insert_val</a> (a, |
| i, |
| v) |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-insert-vals" title="g_array_insert_vals ()">g_array_insert_vals</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> len</code></em>); |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-remove-index" title="g_array_remove_index ()">g_array_remove_index</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>); |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-remove-index-fast" title="g_array_remove_index_fast ()">g_array_remove_index_fast</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>); |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-remove-range" title="g_array_remove_range ()">g_array_remove_range</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> length</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="glib-Arrays.html#g-array-sort" title="g_array_sort ()">g_array_sort</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="type">GCompareFunc</span></a> compare_func</code></em>); |
| <span class="returnvalue">void</span> <a class="link" href="glib-Arrays.html#g-array-sort-with-data" title="g_array_sort_with_data ()">g_array_sort_with_data</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> compare_func</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>); |
| #define <a class="link" href="glib-Arrays.html#g-array-index" title="g_array_index()">g_array_index</a> (a, |
| t, |
| i) |
| <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* <a class="link" href="glib-Arrays.html#g-array-set-size" title="g_array_set_size ()">g_array_set_size</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> length</code></em>); |
| <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="glib-Arrays.html#g-array-free" title="g_array_free ()">g_array_free</a> (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> free_segment</code></em>); |
| </pre> |
| </div> |
| <div class="refsect1" title="Description"> |
| <a name="glib-Arrays.description"></a><h2>Description</h2> |
| <p> |
| Arrays are similar to standard C arrays, except that they grow |
| automatically as elements are added. |
| </p> |
| <p> |
| Array elements can be of any size (though all elements of one array |
| are the same size), and the array can be automatically cleared to |
| '0's and zero-terminated. |
| </p> |
| <p> |
| To create a new array use <a class="link" href="glib-Arrays.html#g-array-new" title="g_array_new ()"><code class="function">g_array_new()</code></a>. |
| </p> |
| <p> |
| To add elements to an array, use <a class="link" href="glib-Arrays.html#g-array-append-val" title="g_array_append_val()"><code class="function">g_array_append_val()</code></a>, |
| <a class="link" href="glib-Arrays.html#g-array-append-vals" title="g_array_append_vals ()"><code class="function">g_array_append_vals()</code></a>, <a class="link" href="glib-Arrays.html#g-array-prepend-val" title="g_array_prepend_val()"><code class="function">g_array_prepend_val()</code></a>, and |
| <a class="link" href="glib-Arrays.html#g-array-prepend-vals" title="g_array_prepend_vals ()"><code class="function">g_array_prepend_vals()</code></a>. |
| </p> |
| <p> |
| To access an element of an array, use <a class="link" href="glib-Arrays.html#g-array-index" title="g_array_index()"><code class="function">g_array_index()</code></a>. |
| </p> |
| <p> |
| To set the size of an array, use <a class="link" href="glib-Arrays.html#g-array-set-size" title="g_array_set_size ()"><code class="function">g_array_set_size()</code></a>. |
| </p> |
| <p> |
| To free an array, use <a class="link" href="glib-Arrays.html#g-array-free" title="g_array_free ()"><code class="function">g_array_free()</code></a>. |
| </p> |
| <p> |
| </p> |
| <div class="example"> |
| <a name="id770239"></a><p class="title"><b>Example 19. Using a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> to store <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> values</b></p> |
| <div class="example-contents"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12</pre></td> |
| <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-Arrays.html#GArray">GArray</a> </span><span class="symbol">*</span><span class="normal">garray</span><span class="symbol">;</span> |
| <span class="normal"><a href="glib-Basic-Types.html#gint">gint</a> i</span><span class="symbol">;</span> |
| <span class="comment">/* We create a new array to store gint values.</span> |
| <span class="comment"> We don't want it zero-terminated or cleared to 0's. */</span> |
| <span class="normal">garray </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Arrays.html#g-array-new">g_array_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span><span class="normal"> <a href="glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="keyword">sizeof</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Basic-Types.html#gint">gint</a></span><span class="symbol">));</span> |
| <span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol"><</span><span class="normal"> </span><span class="number">10000</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span> |
| <span class="normal"> </span><span class="function"><a href="glib-Arrays.html#g-array-append-val">g_array_append_val</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">garray</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">);</span> |
| <span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol"><</span><span class="normal"> </span><span class="number">10000</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span> |
| <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-Arrays.html#g-array-index">g_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">garray</span><span class="symbol">,</span><span class="normal"> <a href="glib-Basic-Types.html#gint">gint</a></span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">!=</span><span class="normal"> i</span><span class="symbol">)</span> |
| <span class="normal"> </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"ERROR: got %d instead of %d</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span> |
| <span class="normal"> </span><span class="function"><a href="glib-Arrays.html#g-array-index">g_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">garray</span><span class="symbol">,</span><span class="normal"> <a href="glib-Basic-Types.html#gint">gint</a></span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">),</span><span class="normal"> i</span><span class="symbol">);</span> |
| <span class="function"><a href="glib-Arrays.html#g-array-free">g_array_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">garray</span><span class="symbol">,</span><span class="normal"> <a href="glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| |
| </div> |
| <p><br class="example-break"> |
| </p> |
| </div> |
| <div class="refsect1" title="Details"> |
| <a name="glib-Arrays.details"></a><h2>Details</h2> |
| <div class="refsect2" title="GArray"> |
| <a name="GArray"></a><h3>GArray</h3> |
| <pre class="programlisting">typedef struct { |
| gchar *data; |
| guint len; |
| } GArray; |
| </pre> |
| <p> |
| Contains the public fields of an Array. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GArray.data"></a>data</code></em>;</span></p></td> |
| <td>a pointer to the element data. The data may be moved as |
| elements are added to the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GArray.len"></a>len</code></em>;</span></p></td> |
| <td>the number of elements in the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> not including the |
| possible terminating zero element. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_new ()"> |
| <a name="g-array-new"></a><h3>g_array_new ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_new (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> zero_terminated</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> clear_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> element_size</code></em>);</pre> |
| <p> |
| Creates a new <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> with a reference count of 1. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>zero_terminated</code></em> :</span></p></td> |
| <td> |
| <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the array should have an extra element at |
| the end which is set to 0. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>clear_</code></em> :</span></p></td> |
| <td> |
| <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> elements should be automatically cleared |
| to 0 when they are allocated. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>element_size</code></em> :</span></p></td> |
| <td>the size of each element in bytes. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the new <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_sized_new ()"> |
| <a name="g-array-sized-new"></a><h3>g_array_sized_new ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_sized_new (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> zero_terminated</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> clear_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> element_size</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> reserved_size</code></em>);</pre> |
| <p> |
| Creates a new <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> with <em class="parameter"><code>reserved_size</code></em> elements preallocated and |
| a reference count of 1. This avoids frequent reallocation, if you |
| are going to add many elements to the array. Note however that the |
| size of the array is still 0. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>zero_terminated</code></em> :</span></p></td> |
| <td> |
| <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the array should have an extra element at |
| the end with all bits cleared. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>clear_</code></em> :</span></p></td> |
| <td> |
| <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if all bits in the array should be cleared to 0 on |
| allocation. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>element_size</code></em> :</span></p></td> |
| <td>size of each element in the array. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>reserved_size</code></em> :</span></p></td> |
| <td>number of elements preallocated. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the new <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_ref ()"> |
| <a name="g-array-ref"></a><h3>g_array_ref ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a> * g_array_ref (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>);</pre> |
| <p> |
| Atomically increments the reference count of <em class="parameter"><code>array</code></em> by one. This |
| function is MT-safe and may be called from any thread. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>A <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> The passed in <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.22</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_unref ()"> |
| <a name="g-array-unref"></a><h3>g_array_unref ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_array_unref (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>);</pre> |
| <p> |
| Atomically decrements the reference count of <em class="parameter"><code>array</code></em> by one. If the |
| reference count drops to 0, all memory allocated by the array is |
| released. This function is MT-safe and may be called from any |
| thread. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody><tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>A <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr></tbody> |
| </table></div> |
| <p class="since">Since 2.22</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_get_element_size ()"> |
| <a name="g-array-get-element-size"></a><h3>g_array_get_element_size ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_array_get_element_size (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>);</pre> |
| <p> |
| Gets the size of the elements in <em class="parameter"><code>array</code></em>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>A <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td> Size of each element, in bytes. |
| |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.22</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_append_val()"> |
| <a name="g-array-append-val"></a><h3>g_array_append_val()</h3> |
| <pre class="programlisting">#define g_array_append_val(a,v)</pre> |
| <p> |
| Adds the value on to the end of the array. The array will grow in |
| size automatically if necessary. |
| </p> |
| <p> |
| </p> |
| <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
| <h3 class="title">Note</h3> |
| <p><a class="link" href="glib-Arrays.html#g-array-append-val" title="g_array_append_val()"><code class="function">g_array_append_val()</code></a> is a macro which uses a reference |
| to the value parameter <em class="parameter"><code>v</code></em>. This means that you cannot use it with |
| literal values such as "27". You must use variables.</p> |
| </div> |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td> |
| <td>the value to append to the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_append_vals ()"> |
| <a name="g-array-append-vals"></a><h3>g_array_append_vals ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_append_vals (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> len</code></em>);</pre> |
| <p> |
| Adds <em class="parameter"><code>len</code></em> elements onto the end of the array. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>a pointer to the elements to append to the end of the array. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td> |
| <td>the number of elements to append. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_prepend_val()"> |
| <a name="g-array-prepend-val"></a><h3>g_array_prepend_val()</h3> |
| <pre class="programlisting">#define g_array_prepend_val(a,v)</pre> |
| <p> |
| Adds the value on to the start of the array. The array will grow in |
| size automatically if necessary. |
| </p> |
| <p> |
| This operation is slower than <a class="link" href="glib-Arrays.html#g-array-append-val" title="g_array_append_val()"><code class="function">g_array_append_val()</code></a> since the |
| existing elements in the array have to be moved to make space for |
| the new element. |
| </p> |
| <p> |
| </p> |
| <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
| <h3 class="title">Note</h3> |
| <p><a class="link" href="glib-Arrays.html#g-array-prepend-val" title="g_array_prepend_val()"><code class="function">g_array_prepend_val()</code></a> is a macro which uses a reference |
| to the value parameter <em class="parameter"><code>v</code></em>. This means that you cannot use it with |
| literal values such as "27". You must use variables.</p> |
| </div> |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td> |
| <td>the value to prepend to the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_prepend_vals ()"> |
| <a name="g-array-prepend-vals"></a><h3>g_array_prepend_vals ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_prepend_vals (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> len</code></em>);</pre> |
| <p> |
| Adds <em class="parameter"><code>len</code></em> elements onto the start of the array. |
| </p> |
| <p> |
| This operation is slower than <a class="link" href="glib-Arrays.html#g-array-append-vals" title="g_array_append_vals ()"><code class="function">g_array_append_vals()</code></a> since the |
| existing elements in the array have to be moved to make space for |
| the new elements. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>a pointer to the elements to prepend to the start of the |
| array. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td> |
| <td>the number of elements to prepend. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_insert_val()"> |
| <a name="g-array-insert-val"></a><h3>g_array_insert_val()</h3> |
| <pre class="programlisting">#define g_array_insert_val(a,i,v)</pre> |
| <p> |
| Inserts an element into an array at the given index. |
| </p> |
| <p> |
| </p> |
| <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
| <h3 class="title">Note</h3> |
| <p><a class="link" href="glib-Arrays.html#g-array-insert-val" title="g_array_insert_val()"><code class="function">g_array_insert_val()</code></a> is a macro which uses a reference |
| to the value parameter <em class="parameter"><code>v</code></em>. This means that you cannot use it with |
| literal values such as "27". You must use variables.</p> |
| </div> |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td> |
| <td>the index to place the element at. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td> |
| <td>the value to insert into the array. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_insert_vals ()"> |
| <a name="g-array-insert-vals"></a><h3>g_array_insert_vals ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_insert_vals (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> data</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> len</code></em>);</pre> |
| <p> |
| Inserts <em class="parameter"><code>len</code></em> elements into a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> at the given index. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td> |
| <td>the index to place the elements at. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> |
| <td>a pointer to the elements to insert. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td> |
| <td>the number of elements to insert. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_remove_index ()"> |
| <a name="g-array-remove-index"></a><h3>g_array_remove_index ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_remove_index (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>);</pre> |
| <p> |
| Removes the element at the given index from a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. The following |
| elements are moved down one place. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td> |
| <td>the index of the element to remove. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_remove_index_fast ()"> |
| <a name="g-array-remove-index-fast"></a><h3>g_array_remove_index_fast ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_remove_index_fast (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>);</pre> |
| <p> |
| Removes the element at the given index from a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. The last |
| element in the array is used to fill in the space, so this function |
| does not preserve the order of the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. But it is faster than |
| <a class="link" href="glib-Arrays.html#g-array-remove-index" title="g_array_remove_index ()"><code class="function">g_array_remove_index()</code></a>. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <em class="parameter"><code>GArray</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td> |
| <td>the index of the element to remove. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_remove_range ()"> |
| <a name="g-array-remove-range"></a><h3>g_array_remove_range ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_remove_range (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> index_</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> length</code></em>);</pre> |
| <p> |
| Removes the given number of elements starting at the given index |
| from a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. The following elements are moved to close the gap. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <em class="parameter"><code>GArray</code></em>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>index_</code></em> :</span></p></td> |
| <td>the index of the first element to remove. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td> |
| <td>the number of elements to remove. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| <p class="since">Since 2.4</p> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_sort ()"> |
| <a name="g-array-sort"></a><h3>g_array_sort ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_array_sort (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareFunc" title="GCompareFunc ()"><span class="type">GCompareFunc</span></a> compare_func</code></em>);</pre> |
| <p> |
| Sorts a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> using <em class="parameter"><code>compare_func</code></em> which should be a <code class="function">qsort()</code>-style |
| comparison function (returns less than zero for first arg is less |
| than second arg, zero for equal, greater zero if first arg is |
| greater than second arg). |
| </p> |
| <p> |
| If two array elements compare equal, their order in the sorted array |
| is undefined. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td> |
| <td>comparison function. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_sort_with_data ()"> |
| <a name="g-array-sort-with-data"></a><h3>g_array_sort_with_data ()</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> g_array_sort_with_data (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Doubly-Linked-Lists.html#GCompareDataFunc" title="GCompareDataFunc ()"><span class="type">GCompareDataFunc</span></a> compare_func</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre> |
| <p> |
| Like <a class="link" href="glib-Arrays.html#g-array-sort" title="g_array_sort ()"><code class="function">g_array_sort()</code></a>, but the comparison function receives an extra |
| user data argument. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>compare_func</code></em> :</span></p></td> |
| <td>comparison function. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td> |
| <td>data to pass to <em class="parameter"><code>compare_func</code></em>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_index()"> |
| <a name="g-array-index"></a><h3>g_array_index()</h3> |
| <pre class="programlisting">#define g_array_index(a,t,i)</pre> |
| <p> |
| Returns the element of a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> at the given index. The return |
| value is cast to the given type. |
| </p> |
| <p> |
| </p> |
| <div class="example"> |
| <a name="id815304"></a><p class="title"><b>Example 20. Getting a pointer to an element in a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a></b></p> |
| <div class="example-contents"> |
| <table class="listing_frame" border="0" cellpadding="0" cellspacing="0"> |
| <tbody> |
| <tr> |
| <td class="listing_lines" align="right"><pre>1 |
| 2 |
| 3 |
| 4</pre></td> |
| <td class="listing_code"><pre class="programlisting"><span class="normal">EDayViewEvent </span><span class="symbol">*</span><span class="normal">event</span><span class="symbol">;</span> |
| <span class="comment">/* This gets a pointer to the 4th element</span> |
| <span class="comment"> in the array of EDayViewEvent structs. */</span> |
| <span class="normal">event </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">&</span><span class="function"><a href="glib-Arrays.html#g-array-index">g_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">events</span><span class="symbol">,</span><span class="normal"> EDayViewEvent</span><span class="symbol">,</span><span class="normal"> </span><span class="number">3</span><span class="symbol">);</span></pre></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| |
| </div> |
| <p><br class="example-break"> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>t</code></em> :</span></p></td> |
| <td>the type of the elements. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>i</code></em> :</span></p></td> |
| <td>the index of the element to return. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the element of the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> at the index given by <em class="parameter"><code>i</code></em>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_set_size ()"> |
| <a name="g-array-set-size"></a><h3>g_array_set_size ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="returnvalue">GArray</span></a>* g_array_set_size (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> length</code></em>);</pre> |
| <p> |
| Sets the size of the array, expanding it if necessary. If the array |
| was created with <em class="parameter"><code>clear_</code></em> set to <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>, the new elements are set to 0. |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td> |
| <td>the new size of the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2" title="g_array_free ()"> |
| <a name="g-array-free"></a><h3>g_array_free ()</h3> |
| <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a>* g_array_free (<em class="parameter"><code><a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> *array</code></em>, |
| <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> free_segment</code></em>);</pre> |
| <p> |
| Frees the memory allocated for the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. If <em class="parameter"><code>free_segment</code></em> is |
| <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> it frees the memory block holding the elements as well and |
| also each element if <em class="parameter"><code>array</code></em> has a <em class="parameter"><code>element_free_func</code></em> set. Pass |
| <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> if you want to free the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> wrapper but preserve the |
| underlying array for use elsewhere. If the reference count of <em class="parameter"><code>array</code></em> |
| is greater than one, the <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a> wrapper is preserved but the size |
| of <em class="parameter"><code>array</code></em> will be set to zero. |
| </p> |
| <p> |
| </p> |
| <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
| <h3 class="title">Note</h3> |
| <p>If array elements contain dynamically-allocated memory, |
| they should be freed separately.</p> |
| </div> |
| <p> |
| </p> |
| <div class="variablelist"><table border="0"> |
| <col align="left" valign="top"> |
| <tbody> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td> |
| <td>a <a class="link" href="glib-Arrays.html#GArray" title="GArray"><span class="type">GArray</span></a>. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><em class="parameter"><code>free_segment</code></em> :</span></p></td> |
| <td>if <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> the actual element data is freed as well. |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> |
| <td>the element data if <em class="parameter"><code>free_segment</code></em> is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>, otherwise |
| <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>. The element data should be freed using <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>. |
| </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr> |
| Generated by GTK-Doc V1.14</div> |
| </body> |
| </html> |