Необработанное исключение: нарушение прав доступа.bunnies_array был 0x5CB3CBA - PullRequest
0 голосов
/ 13 июня 2018

Привет, я новичок в программировании, и я играл с классами, чтобы привыкнуть к нему, но я обнаружил, что всякий раз, когда я использую цикл с массивом в моем классе, я получаю эту ошибку Выдается необработанное исключение: нарушение прав записи.bunnies_array был 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;
    }

1 Ответ

0 голосов
/ 13 июня 2018

Измените строку

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

на

trail.change(bunnies_array);

Начальная строка проходит элементы массива, начиная с сотого, выше границ массива.Я полагаю, вы неправильно поняли ссылку на объявление массива int(&bunnies_array)[100] и смешали ее с адресом массива &bunnies_array.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...