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

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

16.04.2016, 18:48. Просмотров 344. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Возвращение из функции массива указателей (C++):

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

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

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

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

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

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

3
nmcf
6245 / 5557 / 2527
Регистрация: 14.04.2014
Сообщений: 23,369
16.04.2016, 18:49 #2
Ну а тип у тебя почему отличается? Сделай везде int**.
0
dimitrykorno
0 / 0 / 1
Регистрация: 16.04.2016
Сообщений: 49
16.04.2016, 18:53  [ТС] #3
Ну а тип у тебя почему отличается? Сделай везде int**.
объявить int **Lkr?
а как тогда будет выглядеть проверка на нулевой адрес в цикле? так же, или станет *Lkr? и вызов функции *Lkr=krat(..)
0
nmcf
6245 / 5557 / 2527
Регистрация: 14.04.2014
Сообщений: 23,369
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