If it's already a char* (or char[]) why do you need to cast it to char*?

> strcpy...
> (char *)... <-- this bit
> ...output->record_type,(char *)input->recordType.c_str());

Remove the casts and let me know what errors you get.