can't you just use a TEXT pointer for storing all the strings initially

Code:
TEXT* txt_names = {
	strings = 4;
	string("dave", "fred", "pete", "john");
}
TEXT* txt_display = {
	strings = 2;
	pos_x = 200;
	flags = SHOW;
}

...
	(txt_display.pstring)[0] = (txt_names.pstring)[x];
...


if i knew what you were trying to do initially with the strings, could possibly give a different approach

hope this helps