Devo fare un programma che somma due numeri in base 2. Vi chiedo se potete aiutarmi a metterlo a posto. Mi da un errore di runtime.

#include <stdio.h>
#include <ctype.h>

#define dmax 16

int main(){
char num1[dmax],num2[dmax],ris[dmax];
unsigned i=0,j=0,k,rip=0,imin,imax;
for(i=0;i<dmax;i++){ num1[i]=48; num2[i]=48; ris[i]=48;}
i=0;
printf("Inserimento primo numero\n");
num1[i]=getche();
while(isdigit(num1[i])){
num1[i++]=num1[i]-'0';
num1[i]=getche();
}
i--;
printf("\nInserimento secondo numero\n");
num2[j]=getche();
while(isdigit(num2[j])){
num2[j++]=num2[j]-'0';
num2[j]=getche();
}
j--;
k=dmax-1;
while(i>=0 && j>=0){
ris[k]=num1[i]+num2[j]+rip;
rip=0;
if(ris[k]>=2){
ris[k]=ris[k]-2;
rip++;
}
k--;
i--;
j--;
}
while(i>=0){
ris[k]=num1[i]+rip;
rip=0;
if(ris[k]>=2){
ris[k]=ris[k]-2;
rip++;
}
k--;
i++;
}
while(j>=0){
ris[k]=num2[j]+rip;
rip=0;
if(ris[k]>=2){
ris[k]=ris[k]-2;
rip++;
}
k--;
j--;
}
printf("\n");
for(k=0;k<dmax;k++) printf("%d",ris[k]);
getch();
}