高精度乘法为什么运行不出来

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

#include <stdio.h>
#include <string.h>
void d(char x[],int l)
{
    int s;
    char p;
    for(s=0;s<l/2;s++)
    {
        p=x[l-s-1];
        x[l-s-1]=x[s];
        x[s]=p;
    }
    return;
}
int main()
{
  char a[1001]={0},b[1001]={0},c[1001][1001]={0},total[2001]={0};
  int i,t,len1,len2,len,k;
  scanf("%s",a);
  scanf("%s",b);
  len1=strlen(a);
  len2=strlen(b);
  d(a,len1);
  d(b,len2);
  printf("%d %d",len1,len2);
  for(i=0;i<len1;i++)
  {
      for(t=0;t<len2;t++)
      {
          c[i][t]=((int)a[i]-48)*((int)b[t]-48)+48;
          if(t!=0)c[i][t]+=((int)a[i]-48)*((int)b[t-1]-48)/10;
          c[i][t]=((int)c[i][t]-48)%10+48;
      }
      if((int)c[i][len2-1]-48>9)c[i][len2]=((int)a[i]-48)*((int)b[len2-1]-48)/10+48;
  }
  for(t=0;t<len2+len1;t++)
  {
      k=0;
      for(i=0;i<len1;i++)
      {
          if(t-k<0)continue;
          total[t]+=(int)c[i][t-k]-48;
          if(t!=0)total[t]+=((int)total[t-1]-48)/10;
          k++;
      }
      total[t]+=48;
  }
  len=strlen(total);
  printf("%d",len);
  if((int)total[len-1]-48>9)
  {
      total[len]=((int)total[len-1]-48)/10+48;
      len++;
  }
  for(t=0;t<len;t++)
  {
      total[t]=((int)total[t]-48)%10+48;
  }
  for(t=len-1;t>=0;t--)
  {
      printf("%c",total[t]);
  }
  return 0;
}