C++ 在运行案例两次并退出后,我找不到导致阵列损坏的错误
大家好,我得到了一个C++ 在运行案例两次并退出后,我找不到导致阵列损坏的错误,c++,C++,大家好,我得到了一个运行时检查失败#2-变量“barray2”周围的堆栈已损坏。当我循环两次或更多次相同的情况时,就会发生这种情况,而当我决定用一个e来退出while循环时,就会发生这种情况。这是我的代码示例。完成后是否必须清除阵列?我尝试添加一个barray[16]={0};在打印后的箱子里,但我得到一个表达式错误,我没有得到任何线索:( #包括 #包括 #包括 使用名称空间std; int main() { int num(0),k(0); int barray[16]={0}; int n
运行时检查失败#2-变量“barray2”周围的堆栈已损坏。
当我循环两次或更多次相同的情况时,就会发生这种情况,而当我决定用一个e来退出while循环时,就会发生这种情况。这是我的代码示例。完成后是否必须清除阵列?我尝试添加一个barray[16]={0};在打印后的箱子里,但我得到一个表达式错误,我没有得到任何线索:(
#包括
#包括
#包括
使用名称空间std;
int main()
{
int num(0),k(0);
int barray[16]={0};
int num2(0),k2(0);
int barray2[16]={0};
int选择(2);
综合选择2;
字符选项;
while(选项!=-1)
{
不能重新初始化计数器k
和k2
下面引用的循环在完成后将k
和k2
设置为-1。因此,在循环的第二次循环中,您在数组之前写入一个索引:
for (k=15;k>=0;k--)
{
}
for (k2=15; k2>=0; k2--)
{
//...
}
为清楚起见,我将在使用它的每个循环之前显式初始化k
/k2
:
k = 0;
while ((num !=0) && (k<=15))
{
//...
}
k=0;
虽然((num!=0)&&(ki)刚刚发现了这个错误,但我将其全部更改,并在每个案例运行后重置。感谢您查看
k = 0;
while ((num !=0) && (k<=15))
{
//...
}