Суть вопроса в том, какие есть варианты избежать утечек памяти.
Как пример, вот реализация xor с утечкой памяти:
ТЫКwchar_t* xorCipher(const wchar_t* toEncrypt) {
HANDLE hHeap = GetProcessHeap();
if (hHeap != NULL) {
const int size = _wcslen(toEncrypt);
wchar_t* result = (wchar_t*)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(wchar_t) * size);
if (result != NULL) {
for (int i = 0; i != _wcslen(toEncrypt) + 1; i++) {
result[i] = toEncrypt[i] ^ (wchar_t)key;
}
}
return result;
}
}
Проблема в том, что нам нужно отдать указателя на массив символов, я знаю, что так в целом не правильно и всё остальное, интересуют варианты решения, данного вопроса.
P.S. wstring и многое другое использовать не вариант из-за NODEFAULTLIB. Первое что пришло на ум это написать класс, обёртку над wchar__t*, есть ли ещё варианты ?