Потому что функция wcrtomb не знает в какую кодировку нужно превратить ваш символ. Правильное решение - вызвать setlocale:
On startup of the main program, the portable "C" locale is selected as default. A program may be made portable to all locales by calling:
setlocale(LC_ALL, "");
Это настроит локаль вашего приложения согласно окружению. Это более правильный и переносимый вариант того, что предложил @sergey-gornostaev
Вот
пример.