#include <stdio.h>
#include <stdlib.h>
#include "dstring.h"
#define MAX_BUFF 2048
#define MAX_LOOP 10000
#define DS_INIT 100
int main()
{
dstring ds;
char buff[MAX_BUFF], *s;
int size, loop, i, j;
fprintf (stdout, "\nInitialize dynamic string");
fflush (stdout);
if (dstring_init (&ds, DS_INIT) == 1)
{
fprintf (stderr, "\n\nCan not allocate memory!\n\n");
return 1;
}
fprintf (stdout, "\nFill dynamic string with data");
fflush (stdout);
loop = rand() % MAX_LOOP;
for (i=0; i<loop; i++)
{
size = rand() % MAX_BUFF;
for (j=0; j<size; j++) { buff[j] = (int)((int)'A' + (rand() % 26)); }
if (dstring_add (&ds, buff, size) == 1)
{
fprintf (stderr, "\n\nCan not allocate memory!\n\n");
return 1;
}
}
s = dstring_get_data (&ds, &size);
if (s == NULL)
{
fprintf (stderr, "\n\nCan not allocate memory!\n\n");
return 1;
}
fprintf (stdout, "\n\nData:\n\n%s\n\n", s);
fflush (stdout);
fprintf (stdout, "\nFree all allocated memory");
fflush (stdout);
dstring_free (&ds);
free (s);
fprintf (stdout, "\n\n");
return 0;
}