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

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

Войти
Регистрация
Восстановить пароль
 
Дантe
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
#1

После выхода из функции, чтобы матрица не изменялась - C++

11.10.2013, 13:55. Просмотров 225. Ответов 1
Метки нет (Все метки)

Как сделать так, чтобы передать матрицу в функцию, в функции матрицу изменить (поменять элементы матрицы симметрично относительно побочной диагонали) вывести её на экран, но чтобы после окончания функции массив был прежним. Массив - локальная переменная.
Написал код - массив изменяет правильно, но после завершения функции, в главную программу отдает измененный массив.

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
32
void sim(int *, int);
.
.
.
sim(*mas, S);
.
.
.
void sim(int *massiv, int N)
{
 int i,j,x,tmp,y,z;
     y=N-1;                            
     for (i=0,N--; j>0; i++,N--)          
     {
         for (j=0; j<N; j++) 
         {
             x=y-j;
             tmp = *(massiv+i*SIZE+j);
             *(massiv+i*SIZE+j) = *(massiv+x*SIZE+N);    
             *(massiv+x*SIZE+N) = tmp;
         }
     }
                printf("\nParveidotaa matrica (raditaaji):\n");
                for (i=0,y++; i<y; i++)                        
                {
                    for (j=0; j<y; j++)                   
                    {
                        printf("%4d", *(massivs+i*y+j));         
                    }
                    printf("\n");                                      
                }   
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2013, 13:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос После выхода из функции, чтобы матрица не изменялась (C++):

Предотвращение продолжения работы потока после выхода из функции - C++
https://books.google.ru/books?id=1UXRAAAAQBAJ&amp;pg=PA47&amp;lpg=PA47&amp;dq=%D0%B0%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D...

Почему локальная переменная не уничтожается после выхода из функции - C++
В функции создается строка char *pn = new char;. Мне непонятно почему при выходе из функции эта строка доступна в main()? Почему эта строка...

Как сделать так чтобы при изменении одной переменной изменялась другая? - C++
Как сделать так чтобы при изменении одной переменной изменялась другая?

"Перепрыгивание" компилятора к части кода после выхода из функции - C++
Уважаемые форумчане! Решил обратиться к вам, благо уже не знаю, что делать. Накодил я тут QuickSort текста по алфавиту для лабы. Он...

Будет ли "жив" объект после выхода из функции - C++
Всем привет! Приведу пример кода, чтобы наглядно показать свой вопрос: class MyVecClass { public: MyVecClass ( void ) { x =...

Почему переменная "d" не была удалена из стека после выхода из функции? - C++
Почему переменная &quot;d&quot; не была удалена из стека после выхода из функции? #include&quot;stdafx.h&quot; #include&quot;iostream&quot; using namespace std; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
11.10.2013, 14:02 #2
Ты передаешь указатель на твой исходный массив. В локальной функции скопируй матрицу и работай со скопированной. По-другому никак
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2013, 14:02
Привет! Вот еще темы с ответами:

Ошибка после выхода из программы - C++
Всем доброго времени суток! Помогите, плиз, решить проблему!!! Есть программа, в которой у меня динамический массив, и я хочу добавить в...

Ошибка после выхода из программы - C++
Здравствуйте, написал такой код #pragma once #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;Windows.h&gt; using namespace...

указатель не меняется после выхода из ф-ции - C++
void changePionter(char *p) { p=NULL; } int main() { char u='F'; char *p= &amp;u; changePionter(p); // *p=='F'; // a надо...

После выхода из функции, чтобы матрица не изменялась - C (СИ)
Как сделать так, чтобы передать матрицу в функцию, в функции матрицу изменить (поменять элементы матрицы симметрично относительно побочной...


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

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

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