I have built a function that gets an integer argument and returns a char array.

For example, for an argument of 13 the function should return "0013"; for an argument of 3 the function should return "0003".

But I don't get an error and I cannot show this value with `printf(getInstructionIndex(13));`

Here is my code:

```
/* get Instruction Index how "0001" or "0010" */
char * getInstructionIndex(int index){

    char number1;
    char number2;
    char number3;

    char *str = (char *) malloc(sizeof(char) * 4);

        if(index < 10){

            number1 = '0';
            number2 = '0';
            number3 = '0';

            str[0] = number1;
            str[1] = number2;
            str[2] = number3;
            str[3] = index;

            return str;
        }
        else{
            if(index < 100 && index >= 10){

                number1 = '0';
                number2 = '0';

                str[0] = number1;
                str[1] = number2;
                str[2] = index;

                return str;

            }
            else
            {
                if(index < 1000 && index >= 100){
                    number1 = '0';

                    str[0] = '0';
                    str[1] = index;

                    return str;
                }
                else
                {
                    str[0] = index;

                    return str;
                }
            }
        }

        free(str);

}

```

Here is my main:

```
int main(int argc, char *argv[]){

    printf("started\n");

    printf(getInstructionIndex(13)); /* i must see 0013*/

    printf("stopped\n");

    return 0;
}

```