出于某种原因,当我尝试打印出一个字符串数组时,它总是有一个错误:
Project1.exe中0x0F767EA6(msvcp120d.dll)的未处理异常:0xC0000005:访问冲突读取位置0x73F6B6FF。
以下是生成错误的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
const int numItems = 6;
string itemNames[numItems] = { "Boots", "Swords", "Helmets", "Kittens", "Poleaxes", "Leggings" };
cout << "*** Welcome to the item shop! ***\n";
for (int i = 0; i < numItems; i++)
{
cout << itemNames[numItems] << endl;
}
cout << "**********\n\n";
cout << "What would you like to buy?\n";
system("PAUSE");
return 0;
}
顺便说一句,我正在使用Visual Studio 2013。
答案 0 :(得分:1)
for (int i = 0; i < numItems; i++)
{
cout << itemNames[numItems] << endl;
}
您可能需要cout << itemNames[i] << endl;
。否则itemNames[numItems]
总是越界。
答案 1 :(得分:0)
numItems
的值为6
。您正在尝试使用itemNames[6]
在行
itemNames[numItems]
cout&lt;&lt; itemNames [numItems]&lt;&lt; ENDL;
不存在。因此,您会收到访问冲突错误。