CAN ANYONE TELL ME AS TO WHY AM I GETTING SIGSEGV ERROR WHILE SUBMITTING THIS CODE

Code:
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. #define MAX 10000
  6. char * multiply(char [],char[]);
  7. int main()
  8. {
  9. int t;
  10. scanf("%d",&t);
  11. while(t--)
  12. {
  13. char a[MAX];
  14. char b[MAX];
  15. char *c;
  16. int la,lb;
  17. int i;
  18. scanf("%s",a);
  19. scanf("%s",b);
  20. c = multiply(a,b);
  21. int sum=0;
  22. for(int q=0;c[q]!='\0';q++)
  23. sum=sum+c[q];
  24. sum=sum%3;
  25. printf("%d\n",sum);
  26. }
  27. return 0;
  28. }
  29. char * multiply(char a[],char b[]){
  30. static char mul[MAX];
  31. char c[MAX];
  32. char temp[MAX];
  33. int la,lb;
  34. int i,j,k=0,x=0,y;
  35. long int r=0;
  36. long sum = 0;
  37. la=strlen(a)-1;
  38. lb=strlen(b)-1;
  39. for(i=0;i<=la;i++){
  40. a[i] = a[i] - 48;
  41. }
  42. for(i=0;i<=lb;i++){
  43. b[i] = b[i] - 48;
  44. }
  45. for(i=lb;i>=0;i--){
  46. r=0;
  47. for(j=la;j>=0;j--){
  48. temp[k++] = (b[i]*a[j] + r)%10;
  49. r = (b[i]*a[j]+r)/10;
  50. }
  51. temp[k++] = r;
  52. x++;
  53. for(y = 0;y<x;y++){
  54. temp[k++] = 0;
  55. }
  56. }
  57. k=0;
  58. r=0;
  59. for(i=0;i<la+lb+2;i++){
  60. sum =0;
  61. y=0;
  62. for(j=1;j<=lb+1;j++){
  63. if(i <= la+j){
  64. sum = sum + temp[y+i];
  65. }
  66. y += j + la + 1;
  67. }
  68. c[k++] = (sum+r) %10;
  69. r = (sum+r)/10;
  70. }
  71. c[k] = r;
  72. j=0;
  73. for(i=k-1;i>=0;i--){
  74. mul[j++]=c[i] + 48;
  75. }
  76. mul[j]='\0';
  77. return mul;
  78. }