while(i < sz) {
s = v[i];
cout << s << "\t\tcount: ";
int c = 1;
while(s.compare(v[++i]) == 0)
++c;
cout << c << endl;
}
while(s.compare(v[++i]) == 0)
此语句会导致访问越界,修改为
while(++i < sz && s.compare(v[i]) == 0)
本文介绍了一段C++代码中存在的数组越界访问问题,并提供了修正方案。原代码使用了两个while循环来遍历数组并统计重复元素的数量,但存在数组越界的风险。修正后的代码确保了不会发生越界访问。
while(i < sz) {
s = v[i];
cout << s << "\t\tcount: ";
int c = 1;
while(s.compare(v[++i]) == 0)
++c;
cout << c << endl;
}
while(s.compare(v[++i]) == 0)
此语句会导致访问越界,修改为
while(++i < sz && s.compare(v[i]) == 0)
1025
398

被折叠的 条评论
为什么被折叠?