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

Создание динамической матрицы - C++

Восстановить пароль Регистрация
 
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
03.04.2014, 20:44     Создание динамической матрицы #1
C++
1
2
3
4
5
6
7
    float **matrix_1 = new float *[n];
           float **matrix_2 = new float *[n];
              for (i=0; i<n; i++)
        {
             matrix_1[i] = new float [m];
             matrix_2[i]=matrix_1[i];
            }
Не могли бы помочь пояснить первую и вторую строки?
Насколько я понимаю тут создаётся указатель на указатель, слева от знака "=", а справа динамический массив размера n.Но где имя массива?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
03.04.2014, 20:49     Создание динамической матрицы #2
Динамические массивы создаются неименованными. Их объявление и доступ к элементам происходит через указатель на первый элемент. Если первый элемент так же представляет собой массив, то его имя тоже может являться указателем на первый элемент (в случае дин. массива) или автоматически преобразовывается в указатель на первый элемент (в случае стат. массива). По этому значение самого первого элемента самого первого массива в массиве массивов можно получить по указателю на указатель на значение.

В данном случае фактически создаются 2 динамических массива размером n, элементы которых являются указателями.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
03.04.2014, 21:02     Создание динамической матрицы #3
Цитата Сообщение от andryshka Посмотреть сообщение
matrix_2[i]=matrix_1[i];
На всякий случай, оба массива будут содержать одни те же данные.
Изменения в одном, соответственно будут видны и во втором.
Это так и задумано?
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
03.04.2014, 21:12  [ТС]     Создание динамической матрицы #4
Цитата Сообщение от zss Посмотреть сообщение
Цитата Сообщение от andryshka Посмотреть сообщение
matrix_2[i]=matrix_1[i];
На всякий случай, оба массива будут содержать одни те же данные.
Изменения в одном, соответственно будут видны и во втором.
Это так и задумано?
__________________
Сергей Сергеевич
Нет.Там задумано, так, что второй массив останется неизменным до конца программы, а с первым я буду производить манипуляции.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
03.04.2014, 21:18     Создание динамической матрицы #5
Тогда так не подойдет. Выделяйте для него память точно также, как и для первого.
C++
1
 matrix_2[i] = new float [m];
А после того, как первый массив заполните данным,
скопируйте их во второй.
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
03.04.2014, 21:23  [ТС]     Создание динамической матрицы #6
Цитата Сообщение от zss Посмотреть сообщение
А после того, как первый массив заполните данным,
скопируйте их во второй.
А копировать как, желательно смысл, а алгоритм я сам напишу?И вопрос немножко не по теме, где можно взять перечень функции и библиотек С++?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 21:39     Создание динамической матрицы
Еще ссылки по теме:

Удаление столбцов из динамической матрицы C++
Создание динамической конструкции из элементов структуры (дерево) C++
Некорректный вывод динамической матрицы C++

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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,196
Завершенные тесты: 1
03.04.2014, 21:39     Создание динамической матрицы #7
Цитата Сообщение от andryshka Посмотреть сообщение
А копировать как
Проще всего написать двойной цикл и matrix_2[i][j]=matrix_1[i][j];
Yandex
Объявления
03.04.2014, 21:39     Создание динамической матрицы
Ответ Создать тему
Опции темы

Текущее время: 10:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru