Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 引发未处理的异常:写入访问冲突:打印出数组元素_C++_Arrays_String_Swap - Fatal编程技术网

C++ 引发未处理的异常:写入访问冲突:打印出数组元素

C++ 引发未处理的异常:写入访问冲突:打印出数组元素,c++,arrays,string,swap,C++,Arrays,String,Swap,我有一个函数,它输出一个字符串数组。第二个函数本应打印反向列表,但由于某种原因,一个名为xmemory的新选项卡弹出,我收到消息:“未处理的异常引发:写入访问冲突。此->\u Myproxy为0xCCCC。”经过数小时的在线搜索,我终于决定看看这里是否有人可以帮助我 这是我的密码: #include <iostream> #include<string> using namespace std; void display(string array[5]); void d

我有一个函数,它输出一个字符串数组。第二个函数本应打印反向列表,但由于某种原因,一个名为xmemory的新选项卡弹出,我收到消息:“未处理的异常引发:写入访问冲突。此->\u Myproxy为0xCCCC。”经过数小时的在线搜索,我终于决定看看这里是否有人可以帮助我

这是我的密码:

#include <iostream>
#include<string>
using namespace std;

void display(string array[5]);
void displayReverse(string array[5]);

int main()
{
    string fruit[5] = {"Apple", "Banana", "Orange", "Kiwi", "Cherry"};
    display(fruit);
    displayReverse(fruit);
    return 0;
}

void display(string array[5])
{
    for (int i = 0; i < 5; ++i)
    {
        cout << array[i] << endl;
    }
}

void displayReverse(string array[5])
{
    swap(array[1], array[5]);
    swap(array[2], array[4]);
    swap(array[4], array[5]);

    cout << array[1] << endl << array[2] << endl << array[3] << endl << array[4] << endl << array[5] << endl;
}
#包括
#包括
使用名称空间std;
无效显示(字符串数组[5]);
void displayReverse(字符串数组[5]);
int main()
{
串果[5]={“苹果”、“香蕉”、“橙子”、“猕猴桃”、“樱桃”};
展览(水果);;
水果;
返回0;
}
无效显示(字符串数组[5])
{
对于(int i=0;i<5;++i)
{
不能包含
#包括
使用名称空间std;
无效显示(字符串数组[5]);
void displayReverse(字符串数组[5]);
int main()
{
串果[5]={“苹果”、“香蕉”、“橙子”、“猕猴桃”、“樱桃”};
展览(水果);;
水果;
返回0;
}
无效显示(字符串数组[5])
{
对于(int i=0;i<5;++i)
{

cout数组索引从0开始。它不会从1开始。因此,如果数组有5个元素,则可以通过数组[0]访问第一个元素。数组[1]表示第二个元素。displayReverse()正在尝试访问数组中不存在的第六个元素

下面是经过一些修改的代码

#include <iostream>
#include <string>
using namespace std;

void display(string array[], int size);
void displayReverse(string array[]);

int main()
{
    string fruit[5] = {"Apple", "Banana", "Orange", "Kiwi", "Cherry"};
    display(fruit, 5);
    displayReverse(fruit);
    return 0;
}

void display(string array[], int size)
{
    for (int i = 0; i < size; ++i)
    {
        cout << array[i] << endl;
    }
}

void displayReverse(string array[])
{
    swap(array[0], array[4]);
    //swap(array[2], array[3]);
    swap(array[1], array[3]);

    cout << array[0] << endl << array[1] << endl << array[2] << endl << array[3] << endl << array[4] << endl;
}
#包括
#包括
使用名称空间std;
无效显示(字符串数组[],整数大小);
void displayReverse(字符串数组[]);
int main()
{
串果[5]={“苹果”、“香蕉”、“橙子”、“猕猴桃”、“樱桃”};
展示(水果,5);
水果;
返回0;
}
无效显示(字符串数组[],整数大小)
{
对于(int i=0;icout有效索引为
0
直到
size-1
数组[5]如果你使用
std::array
和反向迭代器,你可以编写完整的代码,而不必显式地提及单个索引。或者
std::reverse
如果你不仅要反向打印,而且实际上要反向数组,昨晚有人问了同样的问题。如果你ve c++20这可以帮助您:非常感谢!它现在正在工作!
#include <iostream>
#include <string>
using namespace std;

void display(string array[], int size);
void displayReverse(string array[]);

int main()
{
    string fruit[5] = {"Apple", "Banana", "Orange", "Kiwi", "Cherry"};
    display(fruit, 5);
    displayReverse(fruit);
    return 0;
}

void display(string array[], int size)
{
    for (int i = 0; i < size; ++i)
    {
        cout << array[i] << endl;
    }
}

void displayReverse(string array[])
{
    swap(array[0], array[4]);
    //swap(array[2], array[3]);
    swap(array[1], array[3]);

    cout << array[0] << endl << array[1] << endl << array[2] << endl << array[3] << endl << array[4] << endl;
}