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

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

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

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

05.06.2012, 20:43. Просмотров 934. Ответов 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);
.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2012, 20:43     Двумерный массив как параметр функции
Посмотрите здесь:

C++ функции.двумерный массив
C++ Функция - шаблон ,параметр - двумерный массив типа Т .
C++ Ошибка в функции(двумерный массив)
C++ Как создать динамический двумерный массив с использованием функции malloc?
C++ С++ Программа на Двумерный массив и Функции
C++ Функции (двумерный массив)
C++ Разные способы подключения файла, или как еще можно передать функции двумерный массив?
Двумерный массив с функции C++
C++ Вернуть двумерный массив из функции
C++ Как передать двумерный массив функции?
Как вернуть из функции ссылку на статически создаваемый двумерный массив? C++
Динамический массив как параметр функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jazz411
85 / 33 / 3
Регистрация: 12.03.2011
Сообщений: 234
Записей в блоге: 2
06.06.2012, 02:43     Двумерный массив как параметр функции #2
как вариант можно рассмотреть кокой размерности у нас этот 4 параметр если простой массив то
int* mass, 2-й int** mass (причем тот масив на который мы будем указывать является массивом указателей), 3-й int*** mass и т.д.
vvolka
0 / 0 / 0
Регистрация: 11.04.2012
Сообщений: 36
06.06.2012, 09:05  [ТС]     Двумерный массив как параметр функции #3
На примере двух статических массивов m1[10][10], m2[5][5], обясните, пожалуйста...
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;
}
Yandex
Объявления
09.06.2012, 08:17     Двумерный массив как параметр функции
Ответ Создать тему
Опции темы

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