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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не видаёт?! http://www.cyberforum.ru/cpp-beginners/thread556397.html
//Дано натуральное число п. Проверить, будут ли все цифры //числа различными. #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> main() { int...
C++ Создание словаря Доброго времени суток,уважаемые форумчане!уже которую бессонную ночь в попытке реализовать программу: Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых... http://www.cyberforum.ru/cpp-beginners/thread556336.html
Программа реализующая класс "база данных" C++
Всем привет, ребят помогите пожалуйста, не знаю как написать прогу: создать программу реализующую класс "база данных", хранящую информацию о сотрудниках предприятия в файлае(поля: уникальный номер,...
C++ Чтение файла ТХТ С++
Здравствуйте у меня есть проблема с чтением файла файл input.txt нужно считывать так по группам если в первой строке есть у меня 2 то нужно считать две следующие строки далее 3 значит нужно...
C++ алгоритм шифрования RSA http://www.cyberforum.ru/cpp-beginners/thread556304.html
доброго времени суток)) нужна помощь по поводу асимметричного шифрования данных. точнее с алгоритмом RSA подкиньте ссылок на какую нибудь литературу, где попонятнее написано, а то я впервые...
C++ Даны числа, найти НОД Даны натуральные числа n,m; найти НОД(n,m). Использовать программу, включающую рекурсивную процедуру вычисления НОД, основанную на соотношении НОД(n,m)=НОД(m,r), где r – остаток от деления n на m. подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
23.04.2012, 17:58
Массив можно передать:
1) по указателю
2) по ссылке
3) просто передав его в качестве параметра (нужно указать размерность)

А вернуть можно по ссылке на первый элемент.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int* foo()
{
    int *A = new int(5);
    for (int i = 0; i < 5; i++)
        A[i] = i;
    return A;
}
int main()
{
    int *B = foo();
    for (int i = 0; i < 5; i++)
        std::cout<<B[i]<< " ";
    return 0;
}
Но я так понимаю, нам нужно ведь просто изменить массив в функции? Тогда можно это сделать просто передав указатель на массив вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void foo(int *A)
{
    for (int i = 0; i < 5; i++)
        A[i] = i;
}
int main()
{
    int B[5];
    foo(B);
    for (int i = 0; i < 5; i++)
        std::cout<<B[i]<< " ";
    return 0;
}
Добавлено через 54 секунды
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
ну да, а что ты хотел, чтобы я вернул?
Это ж пример. Я специально показал, какой элемент последний.
Он же вроде просил вернуть массив.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru