Language: C

#include <stdio.h>
#include <string.h>

void FuncReverseString(char str, int len);
 
int main(void)
{
	char data1[1000], data2[1000], ans[1000];
	int i, j, k, n, a;
	int p1, p2, flag;
	
	scanf("%d", &n);
	getchar(); /* 改行文字の削除 */
	
	for(k = 0; k < n; k++){
		/* 変数の初期化 */
		p1 = p2 = flag = a = 0;
		
		/* 文字列の初期化 */
		for(i = 0; i < 100; i++){
			data1[i] = data2[i] = ans[i] = '0';
		}
		
		/* 文字列に１文字ずつ代入 */
		for(i = 0; ; i++){
			if(i > 80){
				flag = 1; // 80桁を超えるなら"overflow"フラグＯＮ
			}
			scanf("%c", &data1[i]);
			if(data1[i] == '\n') break;
		}
		data1[i] = '0';
		p1 = i;
	
		/* 文字列に１文字ずつ代入 */
		for(i = 0; ; i++){
			if(i > 80){
				flag = 1;
			}
			scanf("%c", &data2[i]);
			if(data2[i] == '\n') break;
		}
		data2[i] = '0';
		p2 = i;

		/* "overflow"フラグがＯＮなら中断 */
		if (flag == 1) {
			printf("overflow\n");
			continue;
		}

		/* 反転させて挿入 */
		FuncReverseString(data1, p1);

		FuncReverseString(date2, p2);

		if (p1 < p2) p1 = p2;

		/* １桁ずつ計算する */
		for (i = 0; i < p1; i++) {
			ans[i] = (data1[i] - '0') + (data2[i] - '0');
		}

		/* 桁の繰り上がり */
		for (i = 0; i < (p1 - 1); i++) {
			if (ans[i] >= 10) {
				ans[i] -= 10;
				ans[i+1] += 1;
			}
		}

		/* 最高位の繰り上がり */
		if (ans[p1-1] > 9) {
			ans[p1-1] -= 10;
			ans[p1] = 1;
			a = 1;
		}
		if(a == 1) p1++;

		if (p1 > 80) {
			printf("overflow\n");
			continue;
		}

		for (i = 0; i < p1; i++) {
			ans[i] += '0';
		}

		for (i = p1-1; i >= 0; i--) {
			printf("%c", ans[i]);
		}
		printf("\n");
	}

	return 0;
}

void FuncReverseString(char str, int len)
{
	char temp;
	int i, j;

	for (i = 0, j = len - 1; j >= 0; i++, j--) {
		temp[i] = str[j];
	}
	for(i = 0; i < len; i++) {
		data1[i] = temp[i];
	}
}

Compiler output:
main.c: In function 'main':
main.c:53:35: error: passing argument 1 of 'FuncReverseString' makes integer from pointer without a cast [-Wint-conversion]
   53 |                 FuncReverseString(data1, p1);
      |                                   ^~~~~
      |                                   |
      |                                   char *
main.c:4:29: note: expected 'char' but argument is of type 'char *'
    4 | void FuncReverseString(char str, int len);
      |                        ~~~~~^~~
main.c:55:35: error: 'date2' undeclared (first use in this function); did you mean 'data2'?
   55 |                 FuncReverseString(date2, p2);
      |                                   ^~~~~
      |                                   data2
main.c:55:35: note: each undeclared identifier is reported only once for each function it appears in
main.c: In function 'FuncReverseString':
main.c:104:21: error: subscripted value is neither array nor pointer nor vector
  104 |                 temp[i] = str[j];
      |                     ^
main.c:104:30: error: subscripted value is neither array nor pointer nor vector
  104 |                 temp[i] = str[j];
      |                              ^
main.c:107:17: error: 'data1' undeclared (first use in this function)
  107 |                 data1[i] = temp[i];
      |                 ^~~~~
main.c:107:32: error: subscripted value is neither array nor pointer nor vector
  107 |                 data1[i] = temp[i];
      |                                ^