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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jeerj
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 41
#1

Функция и двумерный массив - C++

19.05.2013, 21:01. Просмотров 535. Ответов 15
Метки нет (Все метки)

Как использовать в качестве аргумента функции двумерный массив?
Все не могу понять, пожалуйста напишите с маленьким примером, чтобы понятно было )
Заранее спасибо )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 21:01     Функция и двумерный массив
Посмотрите здесь:

Функция и двумерный массив. - C++
День добрый. У меня такое задание: нужно создать функцию которая будет находить сумму элементов в тех строках, которые содержат хотя бы...

двумерный массив и функция! - C++
Парни помогите, чего-то я не догоняю! у меня есть функция kol она считает сколько столбцов с нулевым элементом встречается и плюсует в...

Функция и двумерный массив - C++
Я не знаю в чём проблема заключается на этом этапе, но гуглил я много. Если не сложно, просто исправьте код под нужный или объясните, как...

Двумерный массив и функция - C++
Нууууу плиззз подскажите как сделать в виде отдельной функции????? Borland C++ #include<iostream.h> #include<math.h> ...

Функция, принимающая двумерный массив - C++
Дело такое: Есть функция, которая в параметрах принимает двумерный массив. Причем двумерные массивы будут различаться, как в количество...

Функция возвращает двумерный массив - C++
У кого-то есть пример возврата функцией массива? Я пыталась сделать как с обычной переменной - оно компилируется, но не возфращает...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 21:02     Функция и двумерный массив #2
А как ты пробовал?
Jeerj
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 41
19.05.2013, 21:18  [ТС]     Функция и двумерный массив #3
lazybiz,

C++
1
2
3
4
5
6
int N;
int **A = new int*[N];
for(int i=0; i<N; i++)
{
   A[i] = new int [N];
}
Я знаю что вне функции делается все так.
А как это сделать в функции не знаю
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 21:25     Функция и двумерный массив #4
C++
1
2
3
4
5
void my_func( int **array )
{
    array[0][0] = 123;
    ...
}
Jeerj
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 41
19.05.2013, 21:31  [ТС]     Функция и двумерный массив #5
lazybiz,
А как вызвать функцию? Используя этот массив в качестве аргумента
C++
1
2
3
A[3][3]={1,2,3,
         4,5,6,
         7,8,9};
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 21:42     Функция и двумерный массив #6
В параметре всегда должен присутствовать размер массива, исключение - размер первого "подмассива", его размер можно не указывать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int A[3][3] = {
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 } };
 
void test( int a[][3] )
{
    // ...
}
 
int main()
{
    test( A );
    return 0;
}
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.05.2013, 22:41     Функция и двумерный массив #7
Цитата Сообщение от lazybiz Посмотреть сообщение
В параметре всегда должен присутствовать размер массива
Актуально только для массивов на стеке. Для динамических достаточно только указателя для осуществления компиляции.
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
19.05.2013, 22:50     Функция и двумерный массив #8
Tulosba, ну и как потом удалять будешь?
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.05.2013, 22:53     Функция и двумерный массив #9
Цитата Сообщение от daslex Посмотреть сообщение
ну и как потом удалять будешь?
какое это имеет отношение к передаче массива в функцию?
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
19.05.2013, 22:57     Функция и двумерный массив #10
Прямое.
Цитата Сообщение от Tulosba Посмотреть сообщение
Для динамических
не было бы этих слов, я бы не спросил.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.05.2013, 23:25     Функция и двумерный массив #11
daslex, я не просто так добавил фразу:
Цитата Сообщение от Tulosba Посмотреть сообщение
для осуществления компиляции
Понятно, что для использования массива так и или иначе надо знать его размеры. Но имея дело со статическим массивом размерности 2+, придется и на этапе компиляции знать его размеры. Для динамического такого требования нет.
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
19.05.2013, 23:33     Функция и двумерный массив #12
Tulosba, если в функция будет принимать массив как указатель на указатель, то ничто и никто не будет знать его (массива) размеры, ибо sizeof по указателю будет работать не для размера массива, а только и только для размера указателя. Размер указателя не есть размер массива.

Поэтому в массив функции нужно сообщать размер для любого динамического массива (Одномерный он, двумерный, n-мерый).
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 23:39     Функция и двумерный массив #13
Цитата Сообщение от Tulosba Посмотреть сообщение
Для динамического такого требования нет.
Согласен. Мой ответ был не полным.

Добавлено через 1 минуту
Цитата Сообщение от daslex Посмотреть сообщение
Tulosba, если в функция будет принимать массив как указатель на указатель, то ничто и никто не будет знать его (массива) размеры
Можно вместе с динамическим массивом в функцию передать и его размер.

Добавлено через 3 минуты

Не по теме:

Туфтология: Если в функцию передать статический массив, то его размеры тоже никто не будет знать! Тогда как с ним работать?)

daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,662
19.05.2013, 23:58     Функция и двумерный массив #14
Tulosba, я не буду больше с вами спорить в этой теме. Для того, чтоб скомпилировать много чего не обязательно и незнающий человек может подумать, если оно необязательно, то да ну его на ... , без этого ведь короче.

Добавлено через 9 минут
Цитата Сообщение от lazybiz Посмотреть сообщение
Туфтология: Если в функцию передать статический массив, то его размеры тоже никто не будет знать! Тогда как с ним работать?)
Кривая идея и кривой код разумеется :-D
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cmath>
#include <iomanip>
#include <iostream>
 
void func(int A[])
{
    for (int i=0;i<10;i++) std::cout<<A[i]<<"\n"; //и так по миллиону функций число прописать, а потом узнать, что на 1 ошибся
}
 
int main()
{
    int A[10]={1,2,3,4,5,6,7,8,9,10};
    func(A);
 
    std::cin.get();
 
    return 0;
}
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
20.05.2013, 00:03     Функция и двумерный массив #15
Ну тут подходов много.. Можно определить глобальную константу/макрос, можно передать параметром, можно на удачу писать вручную)
Миллионы функций с массивом в параметре говоришь?)... Таких ср*ным веником гнать надо))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2013, 02:55     Функция и двумерный массив
Еще ссылки по теме:

Двумерный массив. Функция возвращает мусор - C++
Добрый день. Необходимо сгенерировать матрицу и заполнить ее. Написал вот такую функцию float** GenerateNaturalNumbers(int...

Функция - шаблон ,параметр - двумерный массив типа Т . - C++
Как правильно прописать в параметры функции двумерный массив типа Т ?(шаблонная функция) Видел формулу преобразования двумерного в...

Функция, которая аннулирует двумерный динамический массив - C++
Здравствуйте! Подскажите пожалуйста функцию которая аннулирует двумерный динамический массив. Заранее благодарна.

Функция выводить на печать одномерный и двумерный массив - C++
Написать функции для печати одномерного и двумерных массивов. #include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
6991 / 4162 / 594
Регистрация: 29.11.2010
Сообщений: 11,044
20.05.2013, 02:55     Функция и двумерный массив #16
Лучше и правильнее всего - передавать динамический массив, можно определить глобальную константу, можно макрос, можно передавать строго заданного размера, но это уже одноразовые решения, в отличии от первого.
Yandex
Объявления
20.05.2013, 02:55     Функция и двумерный массив
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru