#include iostreamusing namespace std;string ans2;void addstring ans int adj int x y z; for int i = adj; i anssize + adj; i++ if i ans2size ans2 = charansanssize - i + adj
在这段代码中,存在一个潜在的错误:
if (i > ans2.size()) {
ans2 = char((ans[ans.size() - i + adj - 1] - '0' + z) % 10 + '0') + ans2;
z = (ans[ans.size() - i + adj - 1] - '0' + z) / 10;
}
这段代码的目的是将ans中的每个数字与ans2中的数字相加,并将结果保存在ans2中。但是在判断条件i > ans2.size()时,应该是i >= ans2.size(),否则当i等于ans2.size()时,会导致数组越界,程序出错。
因此,将上述代码修改为:
if (i >= ans2.size()) {
ans2 = char((ans[ans.size() - i + adj - 1] - '0' + z) % 10 + '0') + ans2;
z = (ans[ans.size() - i + adj - 1] - '0' + z) / 10;
}
这样就能避免数组越界的问题
原文地址: https://www.cveoy.top/t/topic/h5ST 著作权归作者所有。请勿转载和采集!