4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>Arrays</title>
6
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
6
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7
7
<link rel="home" href="index.html" title="GLib Reference Manual">
8
8
<link rel="up" href="glib-data-types.html" title="GLib Data Types">
9
9
<link rel="prev" href="glib-String-Chunks.html" title="String Chunks">
10
10
<link rel="next" href="glib-Pointer-Arrays.html" title="Pointer Arrays">
11
<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
11
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
14
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
125
125
<div class="example">
126
<a name="id-1.6.10.4.9.1"></a><p class="title"><b>Example 13. Using a <a class="link" href="glib-Arrays.html#GArray" title="struct 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>
126
<a name="idm140063744575248"></a><p class="title"><b>Example 13. Using a <a class="link" href="glib-Arrays.html#GArray" title="struct 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>
127
127
<div class="example-contents">
128
128
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
143
<td class="listing_code"><pre class="programlisting"><span class="type">GArray</span> *garray;
144
<span class="type">gint</span> i;
145
<span class="comment">/*</span><span class="comment"> We create a new array to store gint values.</span>
146
<span class="comment"> We don't want it zero-terminated or cleared to 0's. </span><span class="comment">*/</span>
147
garray = <span class="function"><a href="glib-Arrays.html#g-array-new">g_array_new</a></span> (<span class="number">FALSE</span>, <span class="number">FALSE</span>, <span class="keyword">sizeof</span> (<span class="type">gint</span>));
148
<span class="keyword">for</span> (i = <span class="number">0</span>; i < <span class="number">10000</span>; i++)
149
<span class="preproc">g_array_append_val</span> (garray, i);
150
<span class="keyword">for</span> (i = <span class="number">0</span>; i < <span class="number">10000</span>; i++)
151
<span class="keyword">if</span> (<span class="preproc">g_array_index</span> (garray, <span class="type">gint</span>, i) != i)
152
<span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span> (<span class="number">"ERROR: got </span><span class="symbol">%d</span><span class="number"> instead of </span><span class="symbol">%d</span><span class="symbol">\n</span><span class="number">"</span>,
153
<span class="preproc">g_array_index</span> (garray, <span class="type">gint</span>, i), i);
154
<span class="function"><a href="glib-Arrays.html#g-array-free">g_array_free</a></span> (garray, <span class="number">TRUE</span>);</pre></td>
143
<td class="listing_code"><pre class="programlisting"><span class="usertype">GArray</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">garray</span><span class="symbol">;</span>
144
<span class="usertype">gint</span><span class="normal"> i</span><span class="symbol">;</span>
145
<span class="comment">/* We create a new array to store gint values.</span>
146
<span class="comment"> We don't want it zero-terminated or cleared to 0's. */</span>
147
<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>
148
<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>
149
<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>
150
<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>
151
<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>
152
<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>
153
<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>
154
<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>
778
<td class="listing_code"><pre class="programlisting">EDayViewEvent *event;
779
<span class="comment">/*</span><span class="comment"> This gets a pointer to the 4th element</span>
780
<span class="comment"> in the array of EDayViewEvent structs. </span><span class="comment">*/</span>
781
event = &<span class="preproc">g_array_index</span> (events, EDayViewEvent, <span class="number">3</span>);</pre></td>
778
<td class="listing_code"><pre class="programlisting"><span class="usertype">EDayViewEvent</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">event</span><span class="symbol">;</span>
779
<span class="comment">/* This gets a pointer to the 4th element</span>
780
<span class="comment"> in the array of EDayViewEvent structs. */</span>
781
<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>