0
 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;

这是在 switch 案例中,但程序当前在 for 循环之后终止。有任何想法吗?

4

1 回答 1

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

应该真正使用:

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

如果有count元素。当您尝试访问时,v[ count ]您正试图将一个移到集合的末尾——一个经典的一对一错误——并调用 UB。

于 2012-05-02T13:43:14.390 回答