So, I have seen this kind of behavior few times before but really have no clue about why that would happen
JsonArrayT *array = JsonArray_new(strlen(expression) / 2);
printf("%lu %lu\n", array->length, array->allocated);
char *str = strdup(expression);
char *token;
printf("%lu %lu\n", array->length, array->allocated);
output:
0 4
140146654475791 4
why is the value of length changing??