C++数组错误:访问冲突读取位置0xC0000005

C++ Array Error: Access violation reading location 0xC0000005

本文关键字:读取 位置 0xC0000005 访问冲突 数组 错误 C++      更新时间:2023-10-16
出于

某种原因,当我尝试打印出字符串数组时,它总是有一个错误:

项目1.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 << "**********nn";
    cout << "What would you like to buy?n";
    system("PAUSE");
    return 0;
}

顺便说一下,我正在使用Visual Studio 2013。

for (int i = 0; i < numItems; i++)
{
    cout << itemNames[numItems] << endl;
}

你可能想要cout << itemNames[i] << endl;.否则itemNames[numItems]总是越界的。

numItems的值是6 。您正在尝试使用itemNames[numItems]排队访问itemNames[6]

cout <<itemNames[numItems] <<endl;

不存在。因此,您会收到访问冲突错误。