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

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

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

Двумерный массив как параметр функции - C++

05.06.2012, 20:43. Просмотров 1010. Ответов 3
Метки нет (Все метки)

Есть такая функция, загружающая элементы из бинарного файла в массив
C++
1
bool m1[10][10]
:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void loadfromfile(char *filename, int col, int row) 
{
  FILE *f = NULL;
  f = fopen(filename, "rb");
  for (int j = 0; j < col; j++)
  {
    int result = fread(m1[j], sizeof(m1), sizeof(bool), f);
    fseek(f, 2, SEEK_CUR);
    for (int i = 0; i < row; i++)
    {
      m1[j][i] = m1[j][i] - 48;
    }
  }
  fclose (f);
}
Не получается ее изменить, чтобы использовать 4-тым параметром статический массив другой размерности.
Например,
C++
1
loadfromfile("filename", 5, 5, m2);
.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2012, 20:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив как параметр функции (C++):

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

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

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

Как вернуть из функции ссылку на статически создаваемый двумерный массив? - C++
foo(...){ static int Arr return Arr; } int ((foo)(const int m)) //Неверно

Как создать динамический двумерный массив с использованием функции malloc? - C++
Я создаю динамический двумерный массив вот так: int **arr = (int**)malloc(m*sizeof(int*)); //объявление матрицы на экран ...

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

3
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
06.06.2012, 02:43 #2
как вариант можно рассмотреть кокой размерности у нас этот 4 параметр если простой массив то
int* mass, 2-й int** mass (причем тот масив на который мы будем указывать является массивом указателей), 3-й int*** mass и т.д.
0
vvolka
0 / 0 / 0
Регистрация: 11.04.2012
Сообщений: 36
06.06.2012, 09:05  [ТС] #3
На примере двух статических массивов m1[10][10], m2[5][5], обясните, пожалуйста...
0
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
09.06.2012, 08:17 #4
тут есть 2 варианта, но цель 1
1 вариант:
возьмем для массива m1.
Тебе нужно сделать массив указателей для m1.
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
25
26
27
28
#include <iostream>
using namespace std;
 
void loadfromfile(char *filename, int col, int row, bool **mass)
{
    // ... Код функции ...
}
 
 
int main(void)
{
    bool m1[10][10] = {0};
 
    bool *mass[10];
    for(int i = 0; i < 10; i++)
    {
        mass[i] = new bool[10];
        for(int j = 0; j < 10; j++)
        {
            mass[i][j] = m1[i][j];
        }
    }
 
    loadfromfile("filename", 5, 5, mass);
 
    system("PAUSE");
    return 0;
}
2 вариан:
возьмем для массива m2.
Тебе нужно сделать динамический 2х мерный массив для m2.
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
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
 
void loadfromfile(char *filename, int col, int row, bool **mass)
{
    // ... Код функции ...
}
 
 
int main(void)
{
    bool m2[5][5] = {0};
 
    bool **mass = NULL;
 
    mass = new bool*[5];
 
    for(int i = 0; i < 5; i++)
    {
        mass[i] = new bool[5];
        for(int j = 0; j < 5; j++)
        {
            mass[i][j] = m2[i][j];
        }
    }
 
    loadfromfile("filename", 5, 5, mass);
 
    system("PAUSE");
    return 0;
}
1
09.06.2012, 08:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 08:17
Привет! Вот еще темы с ответами:

Как можно вложить двумерный массив в двумерный? - C++
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы размерностью КxК... Подскажите (желательно с...

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

Двумерный массив с функции - C++
Помогите составить функцию для этого кода #include &lt;iostream&gt; using namespace std; int main() { setlocale(0,&quot;&quot;); ...

Функции (двумерный массив) - C++
Какие функции можно сделать к этим фрагментам кода? (Ввод элементов матрицы) printf(&quot;Введите элементы: \n&quot;); for (int i =...


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

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

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