>>166
結論からいうと変数は使えない・・・ので malloc alloc がある。

char* num = (char*)malloc(num*sizeof(char));
...
*(num+5) = 5; // or num[5] = 0; // みたいな...
...
free(num);