在这个代码中,输入123 123 会输出246 200,但是把clear函数中的sizeof(clearbase)+1就会输出246 0,为什么这里sizeof不能准确读取它的大小
#include <bits/stdc++.h>
#define LEN 1020
using namespace std;
int a[LEN],b[LEN],c[LEN];
void clear(int clearbase[]){
memset(clearbase,0,sizeof(clearbase));
}
void readz(int readbase[]){
static char s[LEN];
cin>>s;
clear(readbase);
int len=strlen(s);
for(int i=0;i<len;i++)
readbase[len-i-1]=s[i]-'0';
}
void print(int putbase[]){
int i;
for(i=LEN-1;i>0;i--)
if(putbase[i]!=0)
break;
for(i;i>=0;i--)
putchar(putbase[i]+'0');
}
void adder(int first[],int second[],int answer[]){
clear(answer);
for(int i=0;i<LEN;i++){
answer[i]+=first[i]+second[i];
if(answer[i]>=10){
answer[i+1]++;
answer[i]-=10;
}
}
}
void suber(int first[],int second[],int answer[]){
clear(answer);
for(int i=0;i<LEN;i++){
answer[i]+=first[i]-second[i];
if(answer[i]<0){
answer[i+1]--;
answer[i]+=10;
}
}
}
int main(){
readz(a);
readz(b);
adder(a,b,c);
print(c);
putchar('\n');
suber(a,b,c);
print(c);
return 0;
}