aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eina/src/examples/eina_inarray_01.c
blob: b9ab4e7a5107be49b481d60488dbe141bfdd35d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//Compile with:
//gcc -g eina_inarray_01.c -o eina_inarray_01 `pkg-config --cflags --libs eina`

#include <Eina.h>

int
cmp(const void *a, const void *b)
{
   return *(int*)a > *(int*)b;
}

int main(int argc, char **argv)
{
   Eina_Inarray *iarr;
   char ch, *ch2;
   int a, *b;

   eina_init();
   iarr = eina_inarray_new(sizeof(char), 0);

   ch = 'a';
   eina_inarray_append(iarr, &ch);
   ch = 'b';
   eina_inarray_append(iarr, &ch);
   ch = 'c';
   eina_inarray_append(iarr, &ch);
   ch = 'd';
   eina_inarray_append(iarr, &ch);

   printf("Inline array of chars:\n");
   EINA_INARRAY_FOREACH(iarr, ch2)
     printf("char: %c(pointer: %p)\n", *ch2, ch2);

   eina_inarray_flush(iarr);
   eina_inarray_setup(iarr, sizeof(int), 4);

   a = 97;
   eina_inarray_append(iarr, &a);
   a = 98;
   eina_inarray_append(iarr, &a);
   a = 100;
   eina_inarray_append(iarr, &a);
   a = 99;
   eina_inarray_insert_sorted(iarr, &a, cmp);

   printf("Inline array of integers with %d elements:\n", eina_inarray_count(iarr));
   EINA_INARRAY_FOREACH(iarr, b)
     printf("int: %d(pointer: %p)\n", *b, b);

   eina_inarray_free(iarr);
   eina_shutdown();
}