Почему не компилируется код
Код отказывается компилироваться, в чем ошибка?
#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;
}