> record = realloc(record, (++counter)*sizeof(structType));
That's basically it

But see my comment about realloc - extending an array one record at a time is expensive.

And always use a temp variable for storing the result of realloc in the first instance. If realloc fails, it will return NULL, and you've just lost the rest of the memory you had as well (this is not a good thing)