Impresión de caracteres Unicode (almacenados en variables) en C

Estoy para imprimir algunosUnicode (4 dígitos hexadecimales) caracteres enC.

Esos personajes los he almacenado en algunaint corto variables El siguiente es el código que debo usar para mi 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;
}

Ahora el problema es:

a pesar de questring2 está mostrando la salida correcta en el terminal,string1 no es

Pero yodebe utilizar el Enfoque, es decir, tengo los caracteres Unicode almacenados en algunas variables arbitrarias y necesito una forma de imprimirlos en la pantalla.

Cualquier sugerencia será muy apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta