What is Blah? I am guessing that you missed out the typedef that made Blah an alias of pointer to xString.
Anyway, this is wrong:
It should be:
Blah x = (Blah *) malloc(initialCapacity * sizeof(Blah));
Blah x = malloc(initialCapacity * sizeof(*x));
In BlahAddChar, this line is unnecessary and incorrect:
In BlahAddZstring, this line makes an assumption that might not hold:
char * charPt = x->string[x->size];
z may still be a null pointer.
int futureSize = x->size + strlen(z);