Форум программистов, компьютерный форум CyberForum.ru

Передача массива - C++

Восстановить пароль Регистрация
 
//Александр
 Аватар для //Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
27.09.2010, 00:19     Передача массива #1
Нужна помощь.
как передать массив созданный в функции в main()?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int poisk(AEROFLOT *aeroflot,char *n)
{  int i,k;
 
    k=0;
         for (i=0; i<7; i++)
    {
        if(!strcmp(aeroflot[i].type, n))
        {
                a[k]=i;
         k++;
        }
     }
         if (k==0)
         return (-1);
         else 
         { 
             // в этой строчке мне нужно возвратить массив а, и переменную к;
        
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2010, 00:19     Передача массива
Посмотрите здесь:

передача массива в функциях C++
C++ Передача массива в функцию.
C++ Передача массива
C++ Передача массива структур
Передача двумерного массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
27.09.2010, 00:25     Передача массива #2
Вызываешь функцию , в которую передаешь массив.В скобочках название массива.

C++
1
2
3
4
5
6
7
8
9
int main()
{
Function(Massiv);
}
 
void Function(int Massive[10])
{
/////////////
}
//Александр
 Аватар для //Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
27.09.2010, 00:28  [ТС]     Передача массива #3
мне не в функцию нужно передать а из функции я должен возвращать массив...
mojidabckuu
5 / 5 / 1
Регистрация: 26.09.2010
Сообщений: 25
27.09.2010, 00:34     Передача массива #4
Для возврата можно написать:
C++
1
return *a;
А чтобы получить счетчик k передавай его с ссылкой, то есть:
C++
1
int poisk(AEROFLOT *aeroflot,char *n, int &k)
Ссылка передает адрес, а не значение, тогда твое k по возврату в главную функцию будет измененным.
Reiji Cross
 Аватар для Reiji Cross
26 / 26 / 1
Регистрация: 14.05.2010
Сообщений: 57
27.09.2010, 03:56     Передача массива #5
//Александр, если вы все еще работаете над той же программой, то вам опять же лучше использовать массив объявлнный глобально, тогда не нужно будет передавать его в функцию и возвращать из нее...
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.09.2010, 04:39     Передача массива #6
C
1
int poisk(int *indexes, int *k, AEROFLOT *aeroflot, char *n);
так как у тебя всё смахивает на C, то пишу тебе сишными способами

массив ты создаёшь прямо в main, подаёшь его в функцию poisk, она проводит запись в него и потом k, созданную внутри, или используемую прямо переданную, устанавливает в нужное значение

лучше создать локальные и массив и переменную, тогда, если ты захочешь переделать прототип, тебе не нужно будет функцию переписывать (будет нужно переписать только те точки, где ты полученный массив записываешь для наружного использования)

так что, если ты вдруг захочешь сделать

C
1
2
3
4
5
6
struct indarr {
    int a[100];
    int k;
};
 
int poisk(struct indarr *array, AEROFLOT *aeroflot, char *n);
то в функции нужно будет переписать строку перед return'ом, а не переписывать содержимое циклов

глобальные переменные на начальных этапах могут очень сильно запутать код и привычку "чуть что, то сразу глобальные переменные" лучше не развивать, так как используется это дело очень редко (все функции должны быть самостоятельными, так как со временем появляется потребность перекидывать функции между разными программами)
Yandex
Объявления
27.09.2010, 04:39     Передача массива
Ответ Создать тему
Опции темы

Текущее время: 06:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru