Я давно не работал в C ++, но из памяти проще всего было что-то вроде:
b = tcscpy(new TCHAR[tcslen(c) + 1], c);
На первом этапе выделяется буфер (+1 для дополнительного TCHAR для разделителя NUL); второй шаг копирует всю строку в этот новый буфер; и, наконец, присваивает результат (буфер) b
.
Более новые версии компилятора, вероятно, будут жаловаться на то, что они не используют ограниченную по длине версию процедуры копирования (tcscpy_s
вместо tcscpy
).