Imprimindo caracteres Unicode (armazenados em variáveis) em C

Eu estou para imprimir algunsunicode (4 dígitos hexadecimais) caracteresC.

Esses personagens que eu guardei em algunsint curto variáveis. O seguinte é o código que devo usar para o meu propósito:

#include <stdio.h>
#include <locale.h>
#include <wchar.h>

int main(void) {

    setlocale(LC_ALL,"");

    short a = 0x099A, b = 0x09BE;
    wchar_t *string1 = (wchar_t *) calloc(20, sizeof(wchar_t));
    sprintf(string1, "\\u%04x\\u%04x", a, b);
    printf(" %s ", string1);

    wchar_t *string2 = (wchar_t *) calloc(20, sizeof(wchar_t));
    strcpy(string2, (wchar_t *) "\u099A\u09BE");
    printf(" %s \n", string2);

    return 0;
}

Agora o problema é:

Apesarstring2 está mostrando a saída do corect no terminal,string1 não é.

Mas eudevo use o abordagem, ou seja, eu tenho os caracteres unicode armazenados em algumas variáveis ​​arbitrárias e eu preciso de uma maneira de obtê-los impressos na tela.

Qualquer sugestão será muito apreciada.

questionAnswers(1)

yourAnswerToTheQuestion