在VC、dev=c++下运行时错误,但quincy却可以正常运行?不明白为什么越界了。

#include<iostream>
#include<string>
using namespace std;
int main()
{
enum buf{BASE,LOW,MID,HIGH,TOP};
string part[TOP]; //这里改TOP+1后可以运行了
part[BASE]= "A";
part[LOW] = "B";
part[MID] = "C";
part[HIGH]= "D";
part[TOP] = "E";
for (int i= BASE; i <= TOP; i++)
std::cout << part[i] << endl;
system("PAUSE");
return 0;
}

倚天杖
浏览 159回答 1
1回答

繁花如伊

首先string part[TOP]; //这里改TOP+1后可以运行了这个问题说明你对enum相当不了解!!!我想最佳解决方案就是你不要用你不了解的东西!!!enum定义了一个自己的类型!!!所以不要把它等同于int、long等。其中enum第一元素默认为0,第二个元素默认为1,其他依次类推!所以TOP应该为4,而你一共有5元素,所以定义的数组就有问题了
打开App,查看更多内容
随时随地看视频慕课网APP