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

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

Войти
Регистрация
Восстановить пароль
 
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

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

23.05.2011, 17:23. Просмотров 873. Ответов 6
Метки нет (Все метки)

Есть большой массив память для которого выделяеться динамически

C++
1
2
3
4
5
    double *****massiv_resultatov = new double****[25];
    for(i = 0; i < 25; i++) massiv_resultatov[i] = new double***[15];
    for(i = 0; i < 25; i++) for(j = 0; j < 15; j++) massiv_resultatov[i][j] = new double**[15];
    for(i = 0; i < 25; i++) for(j = 0; j < 15; j++) for(k = 0; k < 15; k++) massiv_resultatov[i][j][k] = new double*[170];
    for(i = 0; i < 25; i++) for(j = 0; j < 15; j++) for(k = 0; k < 15; k++) for(g = 0; g < 170; g++)massiv_resultatov[i][j][k][g] = new double[3];
как его передать в функцию когда нужны только два последних раздела массива

то есть если масиив был обычный то это выглядело бы так

C++
1
2
3
4
double massiv_resultatov[25][15][15][170][3]={0};//инициализация массива
void function(double mass_result[170][3]){}//тело функции
void function(double[170][3]){}//прототип функции
function(massiv_resultatov[i][j][d]);//вызов функции
в моем случае если оставить все как есть ругаеться невозможно преобразовать параметр 1 из 'double **' в 'double [][3]'

подскажите что писать в теле функции и прототипе чтобы все работало ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
385 / 149 / 8
Регистрация: 12.05.2011
Сообщений: 450
23.05.2011, 17:26     Как передать такой массив в функцию #2
либо передать указатель на массив,
либо передать конкретно те значения, которые будут использоваться функцией
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
23.05.2011, 17:26  [ТС]     Как передать такой массив в функцию #3
yekka,
можно пример в коде что писать ?
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
23.05.2011, 17:27     Как передать такой массив в функцию #4
передай так
C++
1
void function(double *****mass_result){}
внутри функции разберёшься чё тебе там нужно
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
23.05.2011, 17:30  [ТС]     Как передать такой массив в функцию #5
pito211
ну это передаеться весь массив а часть массива можно передать ?
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
23.05.2011, 17:49     Как передать такой массив в функцию #6
C++
1
void function(double **mass_result){}
вызывать
C++
1
function(double ***massiv_resultatov){}
Добавлено через 5 минут
это она с двумя последними измерениями работать будет, я так понял тебе это ведь надо?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 19:33     Как передать такой массив в функцию
Еще ссылки по теме:
Как передать динамический массив в функцию? C++
C++ Как правильно передать массив в функцию?
Как передать в функцию char массив? C++
Как передать двухмерный массив в функцию? C++
Как передать в функцию массив символьных строк? C++

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

Или воспользуйтесь поиском по форуму:
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
23.05.2011, 19:33  [ТС]     Как передать такой массив в функцию #7
pito211,
неработает, массив имеет значения -1.#IND

делал так

C++
1
2
3
void function(double **mass_result){} //тело функции
void function(double**);//прототип функции
function(***massiv_resultatov);//вызов функции
что не так ? может с прототипом напутал ?

Добавлено через 30 минут
pito211,
да и при вызове непонятно вообще какая часть массива передаеться в функцию

если бы массив был обычным то вызов был вот такой
C++
1
function(massiv_resultatov[i][j][d]);
то есть переменный i j d явно указыват какую часть массива передавать в фунцию
Yandex
Объявления
23.05.2011, 19:33     Как передать такой массив в функцию
Ответ Создать тему
Опции темы

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