da.h/example.c

162 lines
3.1 KiB
C

#include <errno.h>
#include <stdio.h>
#define DA_GC
#define DA_IMPLEMENTATION
#include "da.h"
#if 1
#include <stdio.h>
int main(void)
{
daInitGC();
dynarr(int) da = daCreate(int, 8);
dynarr(char *) da2 = daCreate(char *, 8);
dynarr(float) da3 = daCreate(float, 1);
if (!da) goto exit;
if (!da2) goto exit;
if (!da3) goto exit;
printf("%zu %zu %zu\n", daSize(da), daCap(da), daType(da));
printf("errno: %d\n", errno);
daAppend(da, 69);
printf("errno: %d\n", errno);
printf("%d\n", da[0]);
printf("%zu %zu %zu\n", daSize(da), daCap(da), daType(da));
da = daResize(da);
if (!da) goto exit;
printf("%zu %zu %zu\n", daSize(da), daCap(da), daType(da));
printf("DA2 -----\n");
daAppend(da2, "Hello, ");
daAppend(da2, "World!");
#define N 100000
for (size_t i = 0; i < N; ++i)
{
daAppend(da2, "AAA");
if (errno == 1) goto exit;
}
printf("%s%s\n", da2[0], da2[1]);
printf("%zu %zu %zu\n", daSize(da2), daCap(da2), daType(da2));
printf("DA3 -----\n");
daAppend(da3, 69.69);
daAppend(da3, 420.420);
printf("%.2f:%.3f\n", da3[0], da3[1]);
exit:
daDeinitGC();
return 0;
}
#else
void printDaU16(void * item)
{
printf("%hu\n", *((unsigned short *) item));
}
void printDaS32(void * item)
{
printf("%hu\n", *((int *) item));
}
int main(void)
{
printf("----------\n");
printf("DA1\n");
printf("----------\n");
dynarr(unsigned short) da = daCreate(unsigned short, 1);
daPush(da, 69);
daPush(da, 420);
daPush(da, 1337);
daPush(da, 34);
daPush(da, 35);
daPush(da, 1667);
unsigned short x = 0;
daPop(da, x);
printf("x: %hu\n", x);
daForeach(da, printDaU16);
printf("%zu %zu %zu\n", daSize(da), daCap(da), daType(da));
//printf("----------\n");
//printf("DA2\n");
//printf("----------\n");
//dynarr(char) da2 = daCreate(char, 1);
//daPush(da2, 'H');
//daPush(da2, 'i');
//daPush(da2, ' ');
//daPush(da2, 'm');
//daPush(da2, 'o');
//daPush(da2, 'm');
//daPush(da2, '?');
//daPush(da2, '?');
//*(char *)daGetRef(da2, 6) = '!';
//daPopDiscard(da2);
//heapstr message = daToCStr(da2);
//printf("%s\n", message);
//printf("----------\n");
//printf("DA3\n");
//printf("----------\n");
//dynarr(char *) da3 = daCreate(char *, 1);
//for (size_t i = 0; i < 1000000; ++i) {
// daPush(da3, "Test");
//}
//char * str;
//daPop(da3, str);
//printf("%s\n", str);
//printf("----------\n");
//printf("DA4\n");
//printf("----------\n");
//dynarr(double) da4 = daCreate(double, 1);
//daPush(da4, 69.692343);
//printf("float: %F\n", da4[0]);
//printf("----------\n");
//printf("DA5\n");
//printf("----------\n");
//dynarr(char *) da5 = daCreate(char *, 1);
//daPush(da5, "Hello, ");
//daPush(da5, "World!");
//DLog("%s%s\n", da5[0], da5[1]);
cleanup:
//daFree(da5);
//daFree(da4);
//daFree(da3);
//free(message);
//daFree(da2);
daFree(da);
return 0;
}
#endif