任何想法为什么这可能会关闭该计划?

时间:2012-05-02 13:39:53

标签: c++ for-loop

 int number;
        cout<<" Please select which item to change:"<<endl;

        for(int i=0;i<=count;i++)
        {
            cout<<i<<"   "<<v[i]->getName()<<endl;
        }


        cin>>i;
        cout<<"Current number of items:  "<<v[i]->getNumber()<<endl;
        cout<<"Enter new value: "<<endl;
        cin>>number;

这是在一个切换案例中,但程序当前在for循环后终止。 任何想法?

1 个答案:

答案 0 :(得分:2)

for(int i=0;i<=count;i++)

应该真的使用:

 for(int i=0;i<count;i++)

如果有count个元素。当您尝试访问v[ count ]时,您试图移动一个超过集合结尾的经典 - 一个经典的一个错误 - 并调用UB。