💾 Archived View for gmi.noulin.net › gitRepositories › dynamicArray › file › main.c.gmi captured on 2023-01-29 at 13:21:48. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
main.c (1909B)
1 #include "libdarray.h" 2 #include <stdio.h> 3 #include <inttypes.h> 4 5 // element type for the myDynt dynamic array 6 typedef struct { 7 uint32_t a,b; 8 } elementt; 9 10 11 // dynamic array of int elements 12 dArrayT(intDynt, int); 13 14 // dynamic array of elementt elements 15 dArrayT(myDynt, elementt); 16 17 18 int main(int ARGC, char** ARGV) { 19 20 // EXAMPLE 1 21 22 // dynamic array of int elements 23 intDynt a; 24 25 // the size of the dynamic array depends on dArrayAddrSpace and dArrayBaseBits in libdarray.h 26 printf("sizeof intDyn: %d\n", sizeof a); 27 28 // initialize a (malloc first buffer) 29 dArrayInit(&a); 30 31 // current maxCount for a 32 printf("max %"PRIiMAX"\n", a.maxCount); 33 34 // add elements 35 dArrayPush(&a, 1); 36 dArrayPush(&a, 2); 37 38 // set value 39 dArrayAt(&a, 1) = 3; 40 41 // get value 42 printf("get %"PRIi32"\n", dArrayAt(&a, 0)); 43 44 // pop an element 45 printf("pop %"PRIi32"\n", dArrayPop(&a)); 46 47 48 // free the internal buffers in a 49 dArrayFree(&a); 50 51 52 // EXAMPLE 2 53 54 // dynamic array of elementt elements 55 myDynt b; 56 57 // the size of the dynamic array depends on dArrayAddrSpace and dArrayBaseBits in libdarray.h 58 printf("\n\nsizeof myDyn: %d\n", sizeof b); 59 60 // initialize b of size at least 17 61 dArrayInitCount(&b, 17); 62 63 // current maxCount for a 64 printf("max %"PRIiMAX"\n\n", b.maxCount); 65 66 // local elements 67 typeof(b.element) dta; 68 69 dta.a = 123; 70 dta.b = 2018; 71 72 for(int i = 0; i < 1+(1<<2); i++) { 73 dta.a += i; 74 dArrayPush(&b, dta); 75 printf("index %"PRIi32"\n", i); 76 printf("maxcount %"PRIiMAX"\n", a.maxCount); 77 printf("get e.a %"PRIi32"\n", dArrayAt(&b, i).a); 78 dArrayAt(&b, i).a -= i-1; 79 printf("modified e.a %"PRIi32"\n", dArrayAt(&b, i).a); 80 printf("get e.b %"PRIi32"\n", dArrayAt(&b, i).b); 81 } 82 83 // get first element 84 printf("\nget e(0).a %"PRIi32"\n", dArrayAt(&b, 0).a); 85 86 // free the internal buffers in b 87 dArrayFree(&b); 88 }