Передача Двумерного Массива В Функцию

Negent

New Member
09.12.2011
2
0
#1
Как я знаю, имя массива и указателя тождественны в С++. Из этого следует, что можно инициализировать указатель, а работать с ним, как с именем массива, добавив индекс (квадратный скобки) или смещение к имени массива и круглые скобки со звёздочкой... Но не в этом суть. Я пробовал ввести передачу в функцию двумерного массива (столбы и строки) - не вышло. Очевидно, что где-то вкралась ошибка.
Вот код:
C++:
#include "stdafx.h"
#include <iostream>

using namespace std;

const int size1 = 3;
const int size2 = 4;
int arr[size1][size2] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

void arr_fun (int arr[][size2], int size1);

void main ()
{
arr_fun (arr[][size2], size1);
system ("pause");
}
void arr_fun (int arr[][size2], size1)
{
for (int i=0; i<size1; i++)
{
for (int j=0; j<size2; j++)
{
cout<<"arr["<<i<<"]: "<<arr[i][j]<<endl;
}
}
}
Хотя бы дайте общие понятия по логике передачи адреса двух- и более мерного массива в функцию, а дальше, я сам попробую написать =)
 

Negent

New Member
09.12.2011
2
0
#2
Как ни крутился, всё равно без глобальных переменных обойтись не удалось:
Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

const int size2 = 4;

void show_arr (int arr[][size2], int);

void main ()
{
static const int size1 = 3;
int arr[size1][size2] = {{1,2,3,4},{4,5,6,7},{7,8,9,0}};
show_arr (arr, size1);
system ("pause");
}
void show_arr (int arr[][size2], int size1)
{
for (int i=0; i<size1; i++)
{
for (int j=0; j<size2; j++)
{
cout<<"Array["<<i+1<<"]: "<<arr[i][j]<<endl;
}
}
}
 
18.09.2009
9
0
#3
Если я правильно понял... , можно передать через указатели

C++:
#include "stdafx.h"

#include <iostream>

using namespace std;

void show_arr (int *arr, int size1, int size2)
{
for (int i=0; i<size1; i++)
{
for (int j=0; j<size2; j++)
{
cout<<"Arr["<<i+1<<"][" << j+1 << "]=" << *(arr + i*size2 +j) << "; ";
}
cout << endl;
}
}

void main ()
{
const int size1 = 3;
const int size2 = 4;
int arr[size1][size2] = { {1,2,3,4}, {4,5,6,7}, {7,8,9,0} };
show_arr (&arr[0][0], size1, size2);
system ("pause");
}
 

Gartus

New Member
09.11.2014
2
0
#4
Дано целое число N и набор из N вещественных чисел. Вывести сумму всех дробных частей