c – 运行时检查失败#2 – 变量’manager’周围的堆栈已损坏!即
发布时间:2020-12-16 09:39:16 所属栏目:百科 来源:网络整理
导读:我正在使用 Windows 7上的visual c并获得错误错误:运行时检查失败#2 – 变量’manager’周围的堆栈已损坏.可能是什么解决方案? #include iostreamusing namespace std;class employee{ char name[30]; float age;public: void getData(void); void putData
我正在使用
Windows 7上的visual c并获得错误错误:运行时检查失败#2 – 变量’manager’周围的堆栈已损坏.可能是什么解决方案?
#include <iostream> using namespace std; class employee { char name[30]; float age; public: void getData(void); void putData(void); }; void employee ::getData(void) { cout<<"entr name"; cin>> name; cout<<"entr age"; cin>>age; } void employee ::putData(void) { cout<<"name:"<< name<<endl; cout<<"age"<<age<<endl; } const int size=3; int main() { employee manager[size]; for(int i=0; i<size; i++) { cout <<endl<<"details of manager "<<i++<<endl; manager[i].getData(); } cout<<endl; for(int i=0;i<size;i++) { cout<< endl << "manager "<< i++ << endl; manager[i].putData(); } getchar(); return 0; } 解决方法employee manager[size]; for(int i=0; i<size; i++) { cout <<endl<<"details of manager "<<i++<<endl; // PROBLEM IS HERE ----------->> ^^^^^ manager[i].getData(); } 当你在最后一次迭代中递增i时,它变得等于大小并且manager [i]超出界限.我认为你的意思是不要在循环内增加我,因为你不仅会超出界限而且还会跳过奇数位置的经理.所以这就是我想你的意图: for(int i=0; i<size; i++) { cout <<endl<<"details of manager "<<i<<endl; manager[i].getData(); } 相同的是指另一个循环 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |