1~50자리 사이 매우 큰 수 2개를 입력받아서 그 합을 출력하는 프로그램인데


제약조건으로 전역변수, 정적배열 사용 불가


Input으로 자릿수 2개랑 그 자릿수에 맞는 자연수 2개 입력


예시

Input:

3 5

123

12345

Output:

12468


별의 별 자료들 다 뒤져봤지만 여기서 막혀서 못 넘어가겠음; 배열 쓰면 간단할 것 같은데


오류가 나거나 컴파일이 안 되거나 값이 이상하게 나오거나 셋 중 하나임 


아래는 짜다가 포기한 코드 

--


#include <stdio.h>

#include <stdlib.h>


void main() {

char  *A = NULL;

char  *B = NULL;

int* C = NULL;

int p, q, r;

int *P = NULL;

int *Q = NULL;

int R;

int sum = 0;

int carry = 0;

scanf("%d %d", &p, &q);

r = (p > q) ? p : q;

R = (p > q) ? q : p;

A = (char*)calloc(10, p + 1);

B = (char*)calloc(10, q + 1);

C = (int *)malloc(sizeof(int)*(r + 1));

P = (int *)malloc(sizeof(int)*p);

Q = (int *)malloc(sizeof(int)*q);

scanf("%s", A);

scanf("%s", B);

for (int i = 0; i < p; i++) {

P[p - 1 - i] = A[i] - 48;

}



for (int i = 0; i < q; i++) {

Q[q - 1 - i] = B[i] - 48;

}


for (int i = 0; i < r; i++) {

sum = P[i] + Q[i] + carry;

carry = sum / 10;

C[i] = sum % 10;

}

if (carry) {

C[r] = carry;

}

for (int i = 0; i <= r; i++) {

printf("%d", C[r - i]);

}




}