Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
//Александр
6 / 6 / 2
Регистрация: 15.04.2010
Сообщений: 151
1

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

20.11.2010, 23:47. Просмотров 895. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

Возврат по ссылке
Приветствую всех! Есть пример из книги Р. Лафоре &quot;Объекто-ориентированное...

12
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2010, 01:27 2
//Александр, ИСпользовать двойной указатель к примеру...
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
21.11.2010, 01:31 3
C++
1
void fun(char mass[][10])
уже всё передаётся по указателю, внутри функции можно её менять

двойной указатель он не сможет использовать, если матрица автоматическая
в данном случае в функцию передаётся указатель на массив из десяти элементов
0
Day
1161 / 966 / 83
Регистрация: 29.10.2009
Сообщений: 1,386
21.11.2010, 01:34 4
//Александр, а какие проблемы? все и будет меняться замечательно!
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2010, 01:36 5
accept, Я это понимаю) Я про динамическое распределение говорил
0
Day
1161 / 966 / 83
Регистрация: 29.10.2009
Сообщений: 1,386
21.11.2010, 01:39 6
ForEveR, а у тебя какие сложности?
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2010, 01:39 7
Day, Эм. У меня никаких. Я давал совет автору использовать динамическое распределение памяти.
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
21.11.2010, 01:44 8
Цитата Сообщение от ForEveR
динамическое распределение памяти
в каком-то другом топе, чтоли ?

при динамическом матрица хранится совсем не так (которая через [i][j] потом используется)
автоматическая матрица хранится в один ряд, и функция, получая указатель, должна знать сколько там колонок в одной строке
одну строку можно рассматривать в виде разных матриц, поэтому двойной указатель не определяет какая из них будет использоваться
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2010, 01:45 9
Цитата Сообщение от ForEveR Посмотреть сообщение
//Александр, ИСпользовать двойной указатель к примеру...
Это был совет по использованию вместо статической матрицы. Только и всего. Возможно здесь это не нужно.
0
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
21.11.2010, 01:51 10
у него в main() написано уже

C++
1
char mass[10][10];
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2010, 01:52 11
accept, Вижу вижу.
Но во первых это не слишком хорошо (лучше define или константа).
А во вторых... Мне просто больше импонирует использовать указатели, нежели статические массивы. Но собственно я вас понял.
1
//Александр
6 / 6 / 2
Регистрация: 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
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
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

Агрегация по ссылке
Здравствуйте! Изучаю агрегацию по ссылке. Ошибка такая: 'B::m_b': function call...

Агрегация по ссылке
Надо описать наследование классов используя агрегацию по ссылке, текст...

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


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

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

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