#include #include #define DA_GC #define DA_IMPLEMENTATION #include "da.h" #if 1 #include 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