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

Как передать массив в функцию? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объект поворачивается вслед за курсором мыши http://www.cyberforum.ru/cpp-beginners/thread981396.html
Должно получиться что-то типа "лицо, следящее за мышью". Бочку сделал, нашел в нете похожее, но дико запутанное, ничерта не понял.
C++ Задача по информатике Ползователь вводит числа к примеру: 1 500 700 -2000, программа должна вывести сумму, что делать с пробелами и вообще как это реализовать, массивом, подскажите? http://www.cyberforum.ru/cpp-beginners/thread981395.html
День недели, switch C++
Ребята прошу помощи, морально нету сил... Задача по введенному месяцу и дню( month day) вычислить день недели, если год начинается с понедельника. знаю что нужно через присвоения остатка деления на 7, но как оформить незнаю help вот наброски #include <stdio.h> #include <conio.h> #include <iostream> using namespace std;
C++ Элементы после 0
Нужна программма которая посчитает все элементы массива после ПЕРВОГО 0. Например есть массив: (1,2,3,4,0,5,6,7,8), то оно должно посчитать 5+6+7+8. А результатом выполнения должно быть 26.
C++ Нужна бесплатная и стабильная IDE http://www.cyberforum.ru/cpp-beginners/thread981381.html
Помогите найти БЕСПЛАТНУЮ нормальную работающую С++ Буду очень благодарен.
C++ исправьте маленькую ошибку подскажите, почему у меня выводит только саму матрицу, а результат - нет? #include "stdafx.h" #include <iostream> using namespace std; int main() { const int N = 5, M = 3; int A = {1, 2, 3, 4, 4, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0}; for (int i=0; i < M; i++) подробнее

Показать сообщение отдельно
rpsv
15 / 46 / 3
Регистрация: 14.10.2013
Сообщений: 161
19.10.2013, 13:18     Как передать массив в функцию?
p1ka4y777, ну так а что вы хотели, вы нигде им значения не даете вот вам и по-умолчанию он выдает непонятно что!

Ниже код, там несколько примеров работы с массивом и функцией:

1) Init_mas - возвращаем двумерный массив (указатель на таковой)

2) Insert_rand - принимает ССЫЛКУ (за это отвечает символ '&') на двумерный массив. Все что мы сделаем в данной функции, отразится на экземпляре, то есть если в функции мы этот массив отчистим, то он отчистится также в int main()

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
 
using namespace std;
 
int** Init_mas(int N, int M)
{
    int** mas = new int* [N];
    for ( int i = 0; i < N; i++ )
    {
        mas[i] = new int [M];
    }
    return mas;
}
 
void Insert_rand(int** &mas, int N, int M)
{
    for (int n = 0; n < N; n++)
    {
        for (int m = 0; m < M; m++)
        {
            mas[n][m] = rand() % 100;
        }
    }
}
 
void Clear_memory(int** &mas, int N)
{
    for(int i = 0; i < N; i++)
    {
        delete[] mas[i];
    }
    //
    delete[] mas;
}
 
void Print_mas(int** mas, int N, int M)
{
    for(int n = 0; n < N; n++)
    {
        cout<<endl;
        for (int m = 0; m < M; m++)
        {
            cout<<"A["<<n<<"]["<<m<<"] = "<<mas[n][m]<<"\n";
        }
    }
}
 
int main()
{
    int N, M;
    cin >> N >> M;
    //
    // Инициализируем массив
    //
    int** A = Init_mas(N, M);
    //
    // Заполняем массив
    //
    Insert_rand(A, N, M);
    //
    // Выводим массив
    //
    Print_mas(A, N, M);
    //
    // Чистим память и выходим
    //
    Clear_memory(A, N);
    system ("pause");
    return 0;
}
 
Текущее время: 14:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru