в C ++, как я могу передать статический массив объекту в качестве параметра и изменить исходный массив там? - PullRequest
0 голосов
/ 07 октября 2010

Массив должен быть в стеке , и мне нужно изменить элементы.Вот что у меня есть:

    Class Me {
private:
    int *_array;
    void run(){
        for (int i = 0 ; i < 10; ++i) {
            _array[i] += 100;
        }
    }
public:
    Me(int array[]) {
        _array = array;
    }
};

Это главное:

    int array[10] = {0, 1,2,3,4,5,6,7,8,9};
    Me m(array);
    m.run();
    for (int i = 0 ; i < 10; ++i) {
        cout << array[i] << " ";
    }
    cout << endl;

Я думал, что передача массива выполняется по ссылке, поэтому, что бы я ни делал в run (), массив в main() тоже должен нести результат, но я явно ошибаюсь.Любой намек на то, что мне не хватает?Спасибо!

1 Ответ

3 голосов
/ 07 октября 2010

Когда я исправляю ваш код так, чтобы он действительно компилировался, я получаю вывод

100 101 102 103 104 105 106 107 108 109

Это не то, что вы ожидали?

...