Почему не компилируется код

Код отказывается компилироваться, в чем ошибка?

#include <malloc.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
char* fromHEXtoTEXT(long a, char *bin)
{ 
    long tmp = a;
    int N;
    if (a == 0)
        N = 1;
    else
    {
        N = 0;
        while (tmp != 0)
        {
            N++;
            tmp = tmp / 16;
        }
    }
    bin = (char*)malloc((N + 1)*sizeof(char));
    for (int i = N - 1; i >= 0; i--)
    {
        switch (a % 16)
        {
            case 0:
            {   
        int j = 0;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 1:
            {
                int j = 1;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 2:
            {
                int j = 2;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 3:
            {
                int j = 3;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 4:
            {
                int j = 4;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 5:
            {
                int j = 5;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 6:
            {
                int j = 6;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 7:
            {
                int j = 7;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 8:
            {
                int j = 8;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 9:
            {
                int j = 9;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 10:
            {
                int j = 10;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 11:
            {
                int j = 11;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 12:
            {
                int j = 12;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 13:
            {
                int j = 13;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 14:
            {
                int j = 14;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
            case 15:
            {
                int j = 15;
        char asciVal = j;
                bin[i] = asciVal;
                break;
            }
        }
        a = a / 16;
    }
    bin[4 * N] = '\0';
    return bin;
}
 
int main(int argc, char* argv[])
{
    long a = 0;
    scanf("%x", &a);
    char *bin = NULL;
    char p = 32;
    bin = fromHEXtoTEXT(a, bin);
    int i = 0;
    while (bin[i] != '\0'){
        printf("%c", bin[i++]);
        printf("%c", p);
    }
    free(bin);
    getch();
    return 0;
}

Ответы (0 шт):