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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.88
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
#1

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

13.12.2009, 21:19. Просмотров 3198. Ответов 4
Метки нет (Все метки)

Возможно это уже и естьна форуме, но как передать из одной функции в другую двумерный массив? (статическое распределение адресов)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2009, 21:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача двумерного массива в функцию (C++):

Передача двумерного массива в функцию - C++
Не могу передать массив в фунцию int min(int Array) { int min = 0; min = Array; for(int i=0;i<3;i++){ for(int...

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

Передача двумерного массива в функцию - C++
Даны две квадратные матрицы nxn. Напечатать ту из них, которая имеет минимальный “след” (т.е. сумму элементов главной диагонали). При...

Передача двумерного массива в функцию - C++
в функцию set_ships передаю массив human, появляется ошибка cannot convert `int (*)' to `int**' for argument `1' to `void set_ships(int**)'...

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

Передача двумерного массива в функцию - C++
Всем доброго времени суток! В Си, при объявлении двумерного массива, можно было сразу проинициализировать его значения: char...

4
odip
Эксперт С++
7160 / 3222 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
13.12.2009, 22:11 #2
Передать два размера массива и указатель:
int width;
int height;
int **data;
0
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
13.12.2009, 23:02  [ТС] #3
Цитата Сообщение от odip Посмотреть сообщение
Передать два размера массива и указатель:
int width;
int height;
int **data;
спасибо, но мне нужен не этот способ...
я делал, но точно не помню как:

вот в main() у меня объявлен массив

int a[10][10];

мы знаем, что a - указатель на [0][0] элемент массива...
его то мы и передаем...а вот что писать в приеме?

Добавлено через 42 минуты
Вспомнил способ сам.
Выглядит так:

C
1
2
3
4
5
6
7
8
9
10
11
void vvod (int [10][10]);
 
void vvod(int a[10][10])
{
 
}
 
void main()
{
vvod(a);
}
0
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,411
13.12.2009, 23:12 #4
Это грабли, которые ты сам себе заботливо подкладываешь в проект. И ты рискуешь огрести кучу проблем на ровном месте.
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
void vvod (int [10][10]);
 
void vvod(int a[10][10])
{
  // здесь чего-то делаем....
}
 
//----------------------
 
int aaa[10][10];
 
// в другом модуле программы:
int bbb[2][10];
 
 
//--------------------- 
int main()
{
vvod(aaa);    // все отработает нормально
 
// в совершенно другом месте, может быть, даже в другом модуле
vvod(bbb);    // здесь скорее всего будет большой бабах!
 
}
0
Neonjke
18 / 18 / 1
Регистрация: 08.10.2009
Сообщений: 94
13.12.2009, 23:25  [ТС] #5
Цитата Сообщение от CheshireCat Посмотреть сообщение
Это грабли, которые ты сам себе заботливо подкладываешь в проект. И ты рискуешь огрести кучу проблем на ровном месте.
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
void vvod (int [10][10]);
 
void vvod(int a[10][10])
{
  // здесь чего-то делаем....
}
 
//----------------------
 
int aaa[10][10];
 
// в другом модуле программы:
int bbb[2][10];
 
 
//--------------------- 
int main()
{
vvod(aaa);    // все отработает нормально
 
// в совершенно другом месте, может быть, даже в другом модуле
vvod(bbb);    // здесь скорее всего будет большой бабах!
 
}
В вашем случае до бабаха дойти не получиться - ошибки полезут раньше)
мой метод возможен только в одном случае - оба (и aaa и bbb объявлены в одной функции и передаются из этой же функции)...
0
13.12.2009, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2009, 23:25
Привет! Вот еще темы с ответами:

Передача в функцию двумерного массива - C++
Вводится две квадратные матрицы разного размера, посчитать сумму модулей отрицательных элементов каждой матрицы, и среднее значение 2-х...

Передача двумерного массива в функцию - C++
проблема в том что в функция inicil не изменяет похожу массива, и в output выводятся нелепые числа... #include <iostream> #include...

Передача двумерного массива в функцию - C++
Как я знаю, имя массива и указателя тождественны в С++. Из этого следует, что можно инициализировать указатель, а работать с ним, как с...

Передача двумерного массива в функцию - C++
Неожиданно для себя столкнулся с такой вот проблемой . Есть две функции : void print_matrix(double ** A, int n) { for (int i = 0;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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