I am using below function to convert Decimal to binary
char** DEtoBinary(char HexDE[])
{
    printf("HexDE = %s\n", HexDE);
    int I;
    char* deBinary[16];
    for (I = 0; I <= 15; I++)
    {
        //deBinary = deBinary + Hex2Binary(HexDE.Substring(I, 1));
        deBinary[I] = strcpy(deBinary, Hex2Binary(substring_added1(HexDE, I, 1)));
    }
    printf("deBinary = %s\n", deBinary);
    return deBinary;
}
Hex to binary function
char *Hex2Binary(char* DE)
{
    printf("Inside DE = %s\n", DE);
    char *myBinary;
    long val = strtol(DE, NULL, 16);
    switch(val)
    {
        case 0:
         myBinary = "0000";
         break;
        case 1:
         myBinary = "0001";
         break;
        case 2:
         myBinary = "0010";
         break;
        case 3:
         myBinary = "0011";
         break;
        case 4:
         myBinary = "0100";
         break;
        case 5:
         myBinary = "0101";
         break;
        case 6:
         myBinary = "0110";
         break;
        case 7:
         myBinary = "0111";
         break;
        case 8:
         myBinary = "1000";
         break;
        case 9:
         myBinary = "1001";
         break;
        case 10: //A
         myBinary = "1010";
         break;
        case 11: //B
         myBinary = "1011";
         break;
        case 12://C
         myBinary = "1100";
         break;
        case 13://D
         myBinary = "1101";
         break;
        case 14://E
         myBinary = "1110";
         break;
        case 15: //F
         myBinary = "1111";
         break;
    }
    printf("myBinary = %s\n" ,myBinary);
    return myBinary;
 }
In Hex2Binary function, myBinary is returning properly, but I need to send whole binary converted string to original caller of char* DEtoBinary(char HexDE[])
original caller is
de1Binary = DEtoBinary(DE[0]);
Example my DE[0] = E234567787888888
Expected is 111000100011........... But I am getting only binary value of last hex value i.e. 8 is 1000
 
     
     
    