wout печатать адрес широкого символа

Я вызываю функцию, которая выводит широкий символ в выходной поток. Учитывать:-

wcout<<GetOutput();

и определение функции выглядит следующим образом: -

const wchar_t* GetOutput()
{
        std::wstringstream stringStream;
        stringStream << out_name << " " << out_type << out_subtype;
        wchar_t* check = new wchar_t[stringStream.str().length() + 1];
        wcscpy(check, stringStream.str().c_str());
        return check;
}

Теперь, когда эта функция вызывается в cmd, она дает мне правильный вывод. Но когда та же функция вызывается в linux (WSL), я получаю вывод в виде адреса, который выглядит примерно так:

0x1ef110ad0

Почему это происходит?

Изменить: - Определение переменных следующее: -

const std::wstring out_name = L"My Name";
const std::wstring out_type = L"Type1";
const std::wstring out_subtype = L"SubType1";

person Rohit Nagpal    schedule 08.07.2021    source источник
comment
Что такое out_name? Что такое out_type? Что такое out_subtype? Почему вы используете узкую строку символов " " для пробела?   -  person Some programmer dude    schedule 08.07.2021
comment
@Rohit Nagpal, что дает вам wprintf?   -  person    schedule 08.07.2021
comment
Что такое wout? Вы имеете в виду std::wcout? У вас также есть утечки памяти   -  person Mircea Ispas    schedule 08.07.2021
comment
@Someprogrammerdude out_name и другие переменные — это просто wstring, которым присваивается значение.   -  person Rohit Nagpal    schedule 08.07.2021
comment
@vish wprintf ничего не выводит в Linux, но в Windows работает.   -  person Rohit Nagpal    schedule 08.07.2021
comment
@MirceaIspas Извините, это была опечатка. Отредактировал. wcout и std::wcout оба не работали.   -  person Rohit Nagpal    schedule 08.07.2021
comment
Что произойдет, если вы замените строку узких символов " " на строку широких символов L" "? Или широкий символ L' '?   -  person Some programmer dude    schedule 08.07.2021
comment
@Someprogrammerdude Теперь я получаю значение мусора.   -  person Rohit Nagpal    schedule 08.07.2021
comment
Каково содержимое ваших переменных? И, пожалуйста, попробуйте создать минимально воспроизводимый пример, чтобы показать нам. Кроме того, почему вы возвращаете указатель из GetOutput? Почему не объект std::wstring?   -  person Some programmer dude    schedule 08.07.2021
comment
@RohitNagpal, не могли бы вы проверить, какую кодировку вы используете? Если MBCS, я думаю, может иметь смысл, что он напечатает адрес.   -  person    schedule 08.07.2021
comment
@vish После удаления MBCS и вставки _UNICODE адрес не печатается, но вывод теперь содержит мусорное значение.   -  person Rohit Nagpal    schedule 08.07.2021
comment
@RohitNagpal приятно знать. Обратите внимание, вам нужно определить как _UNICODE, так и UNICODE. Попробуйте и дайте нам знать. Заголовок stackoverflow.com/questions/7953025/.   -  person    schedule 08.07.2021
comment
@vish Я использую оба в своем наборе символов, но все еще имею проблемы.   -  person Rohit Nagpal    schedule 08.07.2021
comment
@RohitNagpal Хорошо, не могли бы вы рассказать нам, каковы типы и содержание out_name , out_type, out_subtype?   -  person    schedule 08.07.2021
comment
@vish Я отредактировал вопрос. Пожалуйста, проверьте.   -  person Rohit Nagpal    schedule 08.07.2021
comment
@RohitNagpal Если я правильно понимаю, это будет печать на удаленной машине на терминале Linux, верно? В любом случае, если это большое приложение, я бы попросил сделать крошечное с main, GetOutput, с минимальными заголовками, протестировать. Если вы получите такие же результаты, разместите их вместе с информацией о том, используете ли вы DEBUG или RELEASE, конфигурацию процессора, x86, x64, ARM, ARM64. Я бы подумал, что вам лучше всего менять одну вещь за раз. Также обязательно запустите это приложение без удаленной отладки VS на этом компьютере.   -  person    schedule 08.07.2021
comment
@vish Спасибо за совет, приятель. Я попробую это.   -  person Rohit Nagpal    schedule 08.07.2021