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

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

Войти
Регистрация
Восстановить пароль
 
//Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
#1

матрица по ссылке - C++

20.11.2010, 23:47. Просмотров 751. Ответов 12
Метки нет (Все метки)

Я считываю матрицу с файла, и каждый раз когда я вызываю функцию , передается одно и тоже, как ее передать по ссылке так что бы при изменении матрицы в функции она менялась и в маин??



C++
1
2
3
4
5
6
7
8
9
10
11
void fun(char mass[10][10])
{
 
..........................
}
void main()
{
 
char mass[10][10];
fun(mass);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 23:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос матрица по ссылке (C++):

матрица по ссылке - C++
как передать матрицу 15*15 в функцию по ссылке

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

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

Вызвать по ссылке - C++
Хочу вызвать по ссылке, не получается. Вот простой пример. #include &lt;iostream&gt; using namespace std; void z(int &amp;a, double&amp;b);...

12
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
21.11.2010, 01:27 #2
//Александр, ИСпользовать двойной указатель к примеру...
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.11.2010, 01:31 #3
C++
1
void fun(char mass[][10])
уже всё передаётся по указателю, внутри функции можно её менять

двойной указатель он не сможет использовать, если матрица автоматическая
в данном случае в функцию передаётся указатель на массив из десяти элементов
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
21.11.2010, 01:34 #4
//Александр, а какие проблемы? все и будет меняться замечательно!
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
21.11.2010, 01:36 #5
accept, Я это понимаю) Я про динамическое распределение говорил
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
21.11.2010, 01:39 #6
ForEveR, а у тебя какие сложности?
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
21.11.2010, 01:39 #7
Day, Эм. У меня никаких. Я давал совет автору использовать динамическое распределение памяти.
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.11.2010, 01:44 #8
Цитата Сообщение от ForEveR
динамическое распределение памяти
в каком-то другом топе, чтоли ?

при динамическом матрица хранится совсем не так (которая через [i][j] потом используется)
автоматическая матрица хранится в один ряд, и функция, получая указатель, должна знать сколько там колонок в одной строке
одну строку можно рассматривать в виде разных матриц, поэтому двойной указатель не определяет какая из них будет использоваться
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
21.11.2010, 01:45 #9
Цитата Сообщение от ForEveR Посмотреть сообщение
//Александр, ИСпользовать двойной указатель к примеру...
Это был совет по использованию вместо статической матрицы. Только и всего. Возможно здесь это не нужно.
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.11.2010, 01:51 #10
у него в main() написано уже

C++
1
char mass[10][10];
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
21.11.2010, 01:52 #11
accept, Вижу вижу.
Но во первых это не слишком хорошо (лучше define или константа).
А во вторых... Мне просто больше импонирует использовать указатели, нежели статические массивы. Но собственно я вас понял.
1
//Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
21.11.2010, 02:35  [ТС] #12
дело в том что когда я передаю так , то в функции массив изменяется а в main он не меняется и при следующем вызове функции передается не измененный массив а тот что передавался первый раз...
C++
1
2
3
4
5
6
7
8
9
10
11
12
 
void fun(char mass[10][10])
{
 
..........................
}
void main()
{
 
char mass[10][10];
fun(mass);
}
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.11.2010, 07:44 #13
а что находится в fun() ?
0
21.11.2010, 07:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2010, 07:44
Привет! Вот еще темы с ответами:

Переход по ссылке - C++
Люди кто знает как в программу добавить переход по ссылке html напимер нажимаеш на button и переходит к конкретной ссылке ;)

Передача по ссылке - C++
Здравствуйте. 1.typedef struct { MATRIXX_LENTA&lt;double&gt;* MATR; //Ленточная матрица } DATA_LENTA, *PDATA_LENTA; DWORD WINAPI...

Агрегация по ссылке - C++
Надо описать наследование классов используя агрегацию по ссылке, текст программы я написал, н окомпилятор выдает ошибку( подскажите как ее...

Возвращение по ссылке - C++
Здравствуйте! Суть проблемы следующая. Необходимо, чтобы методы класса Pstring2 возвращали значения по ссылке, с возможностью размещения...


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

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

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