Научитесь использовать отладчик (например, gdb
в Linux) и запросите все предупреждения от вашего компилятора (например, g++ -Wall -g
в Linux).
Вы выделили, но не сделализаполните свой массив.Попробуйте возможно
size_t targetfilenamelen = strlen(args->targetFileName);
size_t targetfilepathlen = strlen(args->targetFilePath);
char* path = new char[targetfilenamelen+targetfilepathlen+1]; // extra zero byte
strcpy (path, args->targetFileName);
strcat (path, args->targetFilePath);
Еще лучше, используйте std::string
Например
std::string name(args->targetFileName);
std::string path(args->targetFilePath);
std::string res = name+path;