I am trying to store the two unsigned character array elements into an string variable. one of the variable will contain junk characters, when i am trying store the junk characters is not able store along with a valid value.

This is my code

```
union u_type 
{
    unsigned int IntVar;
    unsigned char Bytes[2];
} temp; 

void main(void)
{
    temp.IntVar = 39;
    printf("%c%c",temp.Bytes[1],temp.Bytes[0]);
}

```

when I am running this code `cc test.c` and `./a.out > tempfile`
Now the tempfile is containing the below contents

> 
> `^@'`
> 
> 
> 

I understood that

`temp.Bytes[1]` is `^@` and `temp.Bytes[0]` is `'`.

I want to merge two array elements into a string that should contain `^@'`. I have tried the below way. 

```
printf("%c%c",temp.Bytes[1],temp.Bytes[0]);
memcpy(string, &temp.Bytes[1],1);
memcpy(string,&temp.Bytes[0],1);
printf("%s",str);

```

Now str contains only `'` But, I want to store like this `^@'` into an string variable.