There are a few ways to hold different sized arrays of strings in memory. Two off the top of my head:
a1) If I recall correctly, many compilers as of late include some sort of string class which handles all of this for you
a2) look up the operators "new" and "delete" for explanations on dynamic memory allocation.