C++ 引发未处理的异常:写入访问冲突。bunnies_数组为0x5CB3CBA

C++ 引发未处理的异常:写入访问冲突。bunnies_数组为0x5CB3CBA,c++,visual-c++,C++,Visual C++,您好,我是编程新手,我在玩类来适应它,但我发现,当我在类中使用数组循环时,我会遇到这个错误 引发未处理的异常:写入访问冲突。bunnies_数组为0x5CB3CBA bunny.h #pragma once #include <iostream> class bunny { public: int change(int(&bunnies_array)[100]); }

您好,我是编程新手,我在玩类来适应它,但我发现,当我在类中使用数组循环时,我会遇到这个错误 引发未处理的异常:写入访问冲突。bunnies_数组为0x5CB3CBA

bunny.h   

     #pragma once
        #include <iostream>

        class bunny {
        public:
            int change(int(&bunnies_array)[100]);

        };

bunny.cpp

    #include "bunny.h"

    int bunny::change( int(&array)[100])
    {

        for ( int i = 0; i < 100; i++)
        {
            array[i] = 1;
        }

        return 0;
    }

main.cpp

    #include "bunny.h"

    int main()
    {
         int bunnies_array[100];

        bunny trail;

        trail.change((&bunnies_array)[100]);
        std::cout << bunnies_array[0];
        return 0;
    }
bunny.h
#布拉格语一次
#包括
班兔{
公众:
int-change(int(&bunnies_数组)[100]);
};
兔子
#包括“bunny.h”
int bunny::change(int(&array)[100])
{
对于(int i=0;i<100;i++)
{
数组[i]=1;
}
返回0;
}
main.cpp
#包括“bunny.h”
int main()
{
int-bunnies_数组[100];
兔子径;
trail.change((&bunnies_数组)[100]);
std::cout更改行

trail.change((&bunnies_array)[100]);

初始行从数组边界上方的第100位开始传递数组元素。我想您可能误解了对数组声明
int(&bunnies\u数组)[100]
的引用,并将其与数组的地址混为一谈
&bunnies\u数组

更改行

trail.change((&bunnies_array)[100]);


初始行从数组边界上方的第100位开始传递数组元素。我想您可能误解了对数组声明
int(&bunnies\u数组)[100]
的引用,并将其与数组的地址混为一谈
&bunnies\u数组

建议:由于您的更改(int[])函数不需要返回任何内容,为什么不将其设为void而不是int?为了详细说明@S.M.的响应,您需要记住,当您将数组传递给函数时,实际上是在传递一个(常量)指针,该指针指向数组本身的第一个元素的地址。每个后续元素都按大小(字节)放置因此,为了调用函数,您有两个选项:1)传递指针本身,例如myFunction(arr);2)传递数组第一个元素的地址,例如myFunction(&arr[0]);哦,当我传递例如function(&arr)[0]时,我想我将传递整个数组,但它将从一开始传递哈哈哈,谢谢你真的帮助了我很多函数不知道数组大小,这就是为什么你要么直接在循环条件中写入迭代次数,要么将大小作为参数传递并使用它。建议:因为你的更改(int[])函数不需要返回任何内容,为什么不将其设为void而不是int?为了详细说明@S.M.的响应,您需要记住,当您将数组传递给函数时,实际上是在传递一个(常量)指针,该指针指向数组本身的第一个元素的地址。每个后续元素都按大小(字节)放置因此,为了调用函数,您有两个选项:1)传递指针本身,例如myFunction(arr);2)传递数组第一个元素的地址,例如myFunction(&arr[0]);哦,当我传递例如function(&arr)[0]时,我想我将传递整个数组,但它将从一开始传递哈哈哈,谢谢你真的帮助了我很多函数不知道数组大小,这就是为什么你要么直接在循环条件中写入迭代次数,要么将大小作为参数传递并使用它。