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

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

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

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

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

подскажи те как передать двумерный массив в функцию?)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 19:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передать двумерный массив в функцию (C++):

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

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

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

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

Не могу передать двумерный массив в функцию - C++
Мне нужно взять имеющийся двумерный массив передать его в функцию, преобразовать и вернуть обратно. Вот код: #include <iostream> ...

Как передать в функцию двумерный динамический массив? - C++
#include <iostream> #include<time.h> #include<cstdlib> using namespace std; void zap(int array, int n) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Байт
Эксперт C
15984 / 10252 / 1536
Регистрация: 24.12.2010
Сообщений: 19,339
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));
SecretSilent
76 / 77 / 2
Регистрация: 16.02.2010
Сообщений: 618
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;
}
Байт
Эксперт C
15984 / 10252 / 1536
Регистрация: 24.12.2010
Сообщений: 19,339
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], что не совсем удобно.
Конечно, можно все многомерные массивы представлять линейными и самим вычислять индексы. Но тогда зачем в языке многомерные массивы? Хотя, многомерные массивы - не самое лучшее, что есть в Си.
Ариман
20 / 20 / 1
Регистрация: 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 это конкретный размер столбиков необязательно константа,хотя с ней работать удобней
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 21:17
Привет! Вот еще темы с ответами:

Как передать массив (двумерный/одномерный вектор) в функцию? - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int n,m;//סענמך ט סעמכבצנג void searchmin(int g,int mm,int i,int...

Как правильно передать в функцию указатель на двумерный массив? - C++
Сабж #include &lt;windows.h&gt; #include &lt;stdio.h&gt; using namespace std; //ОТ безысходности сделал матрицу глобальной int A = {2,...

Как передать в функцию двумерный массив указателей на класс? - C++
у меня есть std::vector&lt;Monster*&gt; monsters; Rect *pole; int pacmen_distance; Monster и Rect два...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.04.2011, 21:17
Ответ Создать тему
Опции темы

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