Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
dimitrykorno
0 / 0 / 1
Регистрация: 16.04.2016
Сообщений: 50
1

Возвращение из функции массива указателей

16.04.2016, 18:48. Просмотров 370. Ответов 3

Здравствуйте. Мне нужно вернуть из функции массив указателей.
Внутри функции создаю динамический массив указателей, в который помещаю адреса определенных элементов переданного динамического массива.
Путаюсь в указателях. Возможно при передаче из функции, возможно при выводе.

в main
C++
1
2
3
4
5
int *Lkr=NULL;
Lkr = krat(A, G, L); 
for (i = 0; Lkr[i]; ++i) cout << Lkr[i] << " ";
//где A - динамический массив,указатель определен глобально. G - граница(количество обрабатываемых элементов).
//L - число, кратность которому проверяю.
функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int* krat(int *C, int n0, int K) //функция находит числа, кратные данному в переданном массиве, возвращает массив указателей на элементы исходного массива
{
    int t = 0;
    int**B = new int*[n0];
    
    for (i = 0; i < n0; i++)
        if (((C[i]>=K) && (C[i] % K == 0))||(C[i]==0))
        {
            B[t] = &C[i];
            t++;
        }
    B[t] = NULL; //последний указатель NULL для определения конца нужных элементов
 
    return *B;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2016, 18:48
Ответы с готовыми решениями:

Как реализовать передачу массива в функцию и возвращение массива из функции?
Нужно сделать отдельный блок программы в виде функции, которая в качестве...

Возвращение массива из функции
Как вернуть массив из функции? double* Zapolnenie(string Name) { if (Name...

Возвращение массива из функции
Почему такой код выводит массив корректно. int* Input() { int b = {...

Возвращение массива из функции
Нужно вернуть массив типа int из функции Как я понимаю сделать это можно...

Возвращение двумерного массива из функции
int function (int x, const int r, const int c) //работает только если указана...

3
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
16.04.2016, 18:49 2
Ну а тип у тебя почему отличается? Сделай везде int**.
0
dimitrykorno
0 / 0 / 1
Регистрация: 16.04.2016
Сообщений: 50
16.04.2016, 18:53  [ТС] 3
Ну а тип у тебя почему отличается? Сделай везде int**.
объявить int **Lkr?
а как тогда будет выглядеть проверка на нулевой адрес в цикле? так же, или станет *Lkr? и вызов функции *Lkr=krat(..)
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
16.04.2016, 19:06 4
Я не понял, что ты там проверяешь, но должно быть так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int **Lkr=NULL;
Lkr = krat(A, G, L); 
for (i = 0; Lkr[i]; ++i) cout << Lkr[i] << " ";
 
int** krat(int *C, int n0, int K) //функция находит числа, кратные данному в переданном массиве, возвращает массив указателей на элементы исходного массива
{
    int t = 0;
    int**B = new int*[n0];
    
    for (i = 0; i < n0; i++)
        if (((C[i]>=K) && (C[i] % K == 0))||(C[i]==0))
        {
            B[t] = &C[i];
            t++;
        }
    B[t] = NULL; //последний указатель NULL для определения конца нужных элементов
 
    return B;
}
Функция возвращает то, что создала, иначе будет утечка.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2016, 19:06

Возвращение из функции значения массива
Есть функция , она выполнила свою работу , теперь результат в виде массива...

Возвращение многомерного массива из функции
Как вернуть многомерный массив из функции для обычного массива c...

Возвращение массива из функции-шаблона
Есть массив int iArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; есть шаблон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru