0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 37
1

Передать двумерный массив в функцию

02.04.2011, 19:55. Показов 1411. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажи те как передать двумерный массив в функцию?)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2011, 19:55
Ответы с готовыми решениями:

Передать в функцию двумерный массив
void polecln(char *pole,int N,int M) { for (int i = 0; i < 100; i++) { for (int j = 0; j...

Передать двумерный массив в функцию
Доброе утро! Подскажите пожалуйста как можно передать двумерный массив из функции в main(). к...

Двумерный массив передать в функцию
Нужно просто вывести двумерный массив с помощью функций. Вот что я написал: #include <iostream>...

Передать двумерный динамический массив в функцию
Стоит такая задача: Написать функцию, которая в матрице C(3,5) заменяет отрицательные элементы их...

4
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.04.2011, 20:33 2
Лучший ответ Сообщение было отмечено как решение

Решение

Один из способов
C
1
2
3
4
5
6
7
F(int a[10][20])
{
}
main()
{ int b[10][20];
    F(b);
}
Другой
C
1
2
3
4
5
6
7
8
9
F(int **a)
{
}
main()
{ int **b;
    b = (int**)malloc(10*sizeof(int *));
    for(j=0; j<20; j++) b[j] = (int *)malloc(20*sizeof(int));
    F(b);
}
Во втором случае массив может быть диагональным или даже "зубчатым"
C
1
2
3
   for(j=0; j<20; j++) b[j] = (int *) malloc (2*j*sizeof(int));
     // или
  for(j=0; j<20; j++) b[j] = (int *) malloc ((20+j%4)*sizeof(int));
3
80 / 80 / 9
Регистрация: 16.02.2010
Сообщений: 636
02.04.2011, 20:36 3
можно использовать что-то вроде этого:
C++
1
2
3
4
5
6
7
8
void f(int *a,int Row,int Col){}
 
int main()
{
  int a[2][2];
  f(&a[0][0],2,2);
  return 0;
}
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.04.2011, 20:53 4
Цитата Сообщение от SecretSilent Посмотреть сообщение
можно использовать что-то вроде этого:
C++
1
2
3
4
5
6
7
8
void f(int *a,int Row,int Col){}
 
int main()
{
  int a[2][2];
  f(&a[0][0],2,2);
  return 0;
}
Оно наверное и можно.
Но.
Всякий ли транслятор спокойно примет F(*a...) и f(&a[0][0]). Примет, конечно, но.
Реализация функции f должна работать с линейной интерпретацией массива. Т,е, вместо a[i][j] писать
a[i*Row + j], что не совсем удобно.
Конечно, можно все многомерные массивы представлять линейными и самим вычислять индексы. Но тогда зачем в языке многомерные массивы? Хотя, многомерные массивы - не самое лучшее, что есть в Си.
0
20 / 20 / 3
Регистрация: 18.09.2010
Сообщений: 28
02.04.2011, 21:17 5
можно и так
C++
1
2
3
4
5
6
7
const int size=5;
F(int[][size])
void main()
{
int mas[size][size]={0};
F(mas);
}
форма записи обязательна в прототипе F(mas[][size]) где size это конкретный размер столбиков необязательно константа,хотя с ней работать удобней
0
02.04.2011, 21:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2011, 21:17
Помогаю со студенческими работами здесь

Передать двумерный массив указателей в функцию
Здравствуйте) У меня есть класс Tile и структура Room. Примерно они выглядят таким образом: ...

Передать в функцию двумерный string массив
Доброго времени суток. Есть указатель на двумерный стринговый массив: string** mas; и ф-я для...

Как передать двумерный массив в функцию?
например у меня есть двумерный массив 5 на 5.мне нужна функция в которой будет запрашиваться...

Не могу передать двумерный массив в функцию
Мне нужно взять имеющийся двумерный массив передать его в функцию, преобразовать и вернуть обратно....

Как передать динамический двумерный массив в функцию
Имеется массив int main() { setlocale(LC_ALL, &quot;rus&quot;); int n, m; cout &lt;&lt; &quot;Введите...

Как передать в функцию указатель на двумерный массив?
Есть массив int arr, как передать в функцию указатель на него, чтобы при изменения массива в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru