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

Передача массива в функцию С++ - C++

Восстановить пароль Регистрация
 
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
29.12.2010, 20:04     Передача массива в функцию С++ #1
Например у меня есть функция для создания массива. И есть функция, которая дальше работает с уже созданным массивом. Как мне этот созданный массив передать во вторую функцию?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
29.12.2010, 20:12     Передача массива в функцию С++ #2
передавай ссылку на массив.
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
29.12.2010, 20:14     Передача массива в функцию С++ #3
C++
1
<возвращаемый тип функции> <имя функции>(<тип массива> <имя массива>[])
Учти массив не копируется. Имя массива преобразуется в указатель и копия указателя на начало массива передается в функцию по значению.
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
29.12.2010, 20:14     Передача массива в функцию С++ #4
Массив можно передать в функцию через указатель. Ваша первая функция должна возвращать массив (через указатель). Поэтому можно либо создать указатель на массив и присвоить ему вызов первой функции и передать этот указатель во вторую функцию, либо передать первую функцию в качестве параметра во вторую функцию.
Perfaratar
2 / 2 / 0
Регистрация: 07.12.2010
Сообщений: 43
29.12.2010, 20:37  [ТС]     Передача массива в функцию С++ #5
Вот мой код, надеюсь этот я написал правильно...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int **SozMatr(int& q)
{
    cout<<"Vvedite razmer matrici:";
    cin>>q;
    int **mat=NULL;
    mat=new int*[q];
    for(int i=0;i<q;i++)
    {
        mat[i]=new int[q];
    }
    return mat;
}
int _tmain(int argc, _TCHAR* argv[])
{
    int **mat=0;
    int q;
    mat=SozMatr(q);
    Zadacha(mat, q);
    getch();
    return 0;
}
и теперь нужна функция... и как ее описать? Так что ли?
C++
1
int **Zadacha(int **mat, int q)
Добавлено через 17 минут
Хелп!
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
30.12.2010, 11:07     Передача массива в функцию С++ #6
Если вы пишите
C++
1
Zadacha(mat, q);
то ваша функция ничего не возвращает...
тогда она может быть описана так, например)
C++
1
2
3
4
5
6
7
void Zadacha(int **mat, int q)
{
    int i, j;
    for (i=0; i<q; i++)
        for (j=0; j<q; j++)
            mat[i][j]=1;
}
Yandex
Объявления
30.12.2010, 11:07     Передача массива в функцию С++
Ответ Создать тему
Опции темы

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