【发布时间】:2014-02-17 03:45:37
【问题描述】:
我希望有人能回答这个问题并实际上教我一些东西。我有这个简单的小sn-p代码,它可以正常工作,但是在程序结束后Windows会抛出以下错误
program.exe 已停止工作 一个问题导致程序停止 正常工作。 Windows 将关闭程序并通知您,如果 解决方案可用。
带有关闭程序的按钮
下面的代码询问用户会有多少玩家,然后根据玩家数量创建一个大小等于玩家数量的数组。然后 for 循环将每个字符名称打印到屏幕上。这是代码
int main()
{
int numplay;
cout<<"How many players will there be? ";
cin>> numplay;
cin.ignore();
cin.get();
string *players = new string[numplay - 1];
for (int x = 1; x < numplay + 1; x++) {
string name;
cout<<"What is Player "<< x <<"'s name? ";
cin>> name;
players[x - 1] = name;
cin.ignore();
}
cin.clear();
cin.sync();
cin.get();
for (int x = 0; x < numplay; x++) {
cout<< players[x] <<"\n";
}
delete[] players;
}
事情就像我说的代码编译并运行良好它只是在最后 Windows 抛出了上面提到的错误,几乎没有细节。如果从数组声明中删除 -1,问题就会得到缓解。但是,这会创建一个额外的未使用的数组元素。我希望这个问题是连贯的,它完全是出于好奇,因为 Windows 没有提供太多细节。
【问题讨论】:
标签: c++ arrays visual-c++