我设置了veriable,但是当我调用它时,它带有不同的veriable。 没有for循环就可以正常工作。但是当我添加for循环时,问题显示出来了。
#define Size 20
class Stack{
private:
int stack[Size];
int top;
public:
Stack();
~Stack();
void info();
};
Stack::Stack(){
cout<<"The stack is beign created"<<endl;
cout<<"//////////////////////////"<<endl;
top = -1; // The problem is here <<
cout<<top<<endl;
for(int i = 0;i <= Size;i++){
stack[i] = 0;
};
cout<<top<<endl;
};
void Stack::info(){
cout<<top<<endl;
}
我的期望输出是:
The stack is beign created
//////////////////////////
-1
-1
-1
//////////////////////////
The stack is beign destroyed
当前代码的输出为:
The stack is beign created
//////////////////////////
-1
0
0
//////////////////////////
The stack is beign destroyed
答案 0 :(得分:0)
您正在超越stack
。 Size
是20
,您正在编写21个元素。
您的for
循环条件应为i < Size
,而不是i <= Size
。