size_t i = vDiskName.size()-1;
for (; i >= 0; --i)
{
const string& diskName = vDiskName[i];
}
示例如上,这个程序运行后将会崩溃。
原因: i为0时的那次循环后,--i,i将会变为18446744073709551615,然后访问下标就越界了。
C++数组越界详解
本文通过一个具体的C++程序示例,详细分析了数组越界错误的原因及其可能导致的程序崩溃问题。重点介绍了循环中变量不当递减导致的下标越界情况。
size_t i = vDiskName.size()-1;
for (; i >= 0; --i)
{
const string& diskName = vDiskName[i];
}
示例如上,这个程序运行后将会崩溃。
原因: i为0时的那次循环后,--i,i将会变为18446744073709551615,然后访问下标就越界了。
2613
2万+

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