Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Непонятно с передачей параметра в функцию

86K
10 ноября 2012 года
crynspo
1 / / 10.11.2012
Есть три метода:
void method1(double A[][]);
void method2(double A[][]);
void method3(double A[][]);

Они выполняются последовательно, в каждом из них выполняются операции с матрицей A. При выполнении последнего метода на вход поступает не A, а последний результат выполнения method2. Как можно решить эту проблему?. А объявлен как final static double[][] A
392
11 ноября 2012 года
cronya
421 / / 03.01.2009
Передаете указатель на массив, делаете с ним преобразования передаете опять указатель уже с измененным массивом. Решение: создать отдельный массив, с помощью которого заполняете новый массив в методе, установки элементов нового массива из старого. Если вы новому указателю присвоите старый, он будет указывать на ту же область памяти, соответственно вы опять придете к тому же от чего хотели избавиться.

на си будет примерно так
Код:
int main()
{
    unsigned int size = 10;
    int* Arr = new int[size];
    for(unsigned int idx=0;idx<size;idx++)
    {
        Arr[idx] = idx+1;
    }
    delete[] Method1(Arr, size);
    delete[] Arr;
    return 0;
}

int* Method1(int* mas, unsigned int size)
{
    int* newArr = new int[size];
    for(unsigned int idx=0; idx<size;idx++)
    {
        newArr[idx] = mas[idx];
    }
    /*
        Something do ..................................
    */

    return newArr;
}

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог