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

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

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

Передача в функцию массива - C++

20.02.2011, 16:01. Просмотров 982. Ответов 3
Метки нет (Все метки)

Всем привет. У меня следующая проблема: мне нужно передать в функцию массив так, чтоб потом при завершении работы его значения поменялись.

В простом случае, когда я передавал не массив я делал так

C++
1
2
3
4
5
6
7
8
9
10
11
12
void func (int *a)
{
//Текст функции//
}
///
///
...
...
{
int b; 
func (&b);
}
И все работало. Теперь мне надо передать массив
Сейчас у меня есть функция
C++
1
2
3
4
void cut (double a[100][100], int n, int m, double *c[100][100])
{
///Текст///
}
И передать в нее нужно массив

C++
1
2
3
4
5
double b[100][100]; 
cut (a, i, j, &b);// Не работает!!!
//Пишет что ошибка в четвертом аргументе
//Ошибка    1   error C2664: cut: невозможно преобразовать параметр 4 из "double (*)[100][100]" в 
//"double *[][100]" d:\cpp\projects\det\det\det.cpp 162 1   det
Заранее спасибо за помощь!

Еще я думал сделать вариант чтоб функция возвращала этот массив, но я не знаю как его описать (классом бы не хотелось а то прожка простенькая)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 16:01     Передача в функцию массива
Посмотрите здесь:

C++ передача массива в функцию
C++ Передача массива в функцию.
Передача массива в функцию C++
Передача массива в функцию C++
Передача массива в функцию C++
С\С++ Передача в функцию 2 массива C++
Передача массива в функцию C++
C++ Передача массива в функцию
C++ Передача массива в функцию
Передача массива в функцию C++
Передача массива в функцию C++
C++ Передача массива в функцию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
20.02.2011, 16:11     Передача в функцию массива #2
ссылку на массив делай так
C++
1
void cut (double a[100][100], int n, int m, double (&c)[100][100])
вызов так
C++
1
2
double b[100][100]; 
cut (a, i, j, b);
если с указателями, то double (*c)[100][100] при объявлении функции, и &b при вызове
Zerony
1 / 1 / 0
Регистрация: 31.10.2010
Сообщений: 40
20.02.2011, 16:14  [ТС]     Передача в функцию массива #3
Цитата Сообщение от Ma3a Посмотреть сообщение
ссылку на массив делай так
C++
1
void cut (double a[100][100], int n, int m, double (&c)[100][100])
вызов так
C++
1
2
double b[100][100]; 
cut (a, i, j, b);
если с указателями, то double (*c)[100][100] при объявлении функции, и &b при вызове
Спс, все работает.
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
20.02.2011, 16:29     Передача в функцию массива #4
функция , возвращающая ссылку на массив указанного типа и размера объявляется немного непривычным образом

C++
1
2
template <typename T>
T (&func(/*params*/))[SIZE];
Yandex
Объявления
20.02.2011, 16:29     Передача в функцию массива
Ответ Создать тему
Опции темы

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