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

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

Войти
Регистрация
Восстановить пароль
 
andryshka
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 81
#1

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

03.04.2014, 20:44. Просмотров 601. Ответов 6
Метки нет (Все метки)

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.Но где имя массива?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2014, 20:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание динамической матрицы (C++):

Создание динамической матрицы - C++
никак не могу понять в чем ошибка #include &lt;stdio.h&gt; void matrix(int n) { int** arr = new int*; for(int i = 0;...

Создание массива динамической длинны - C++
Раньше писал на C# а сейчас вот нужно на плюсах написать небольшую задачку, не могу создать массив определенной длинны.... короче *ret...

Создание динамической библиотеки сортировок - C++
Всем привет, дали задание создать динамическую библиотеку с сортировками bubble и Quick. Я делаю в компиляторе dev с++ dllmain.c ...

Создание динамической библиотеки (dll) в Dev C++ - C++
Кто умеет создавать dll библиотеки в Dev C++, вопрос к вам. Дело в том что я умею создавать header файлы, то бишь заголовочные, но в виду...

Сортировка динамической матрицы - C++
Написать программу сортировки динамического двумерного массива. Общее задание: Динамический двумерный массив (массив строк или...

Cортировка динамической матрицы - C++
Отсортировать каждую строку динамической матрицы по возрастанию и вывести новую матрицу с упорядоченными строками Помогите...не...

6
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
03.04.2014, 20:49 #2
Динамические массивы создаются неименованными. Их объявление и доступ к элементам происходит через указатель на первый элемент. Если первый элемент так же представляет собой массив, то его имя тоже может являться указателем на первый элемент (в случае дин. массива) или автоматически преобразовывается в указатель на первый элемент (в случае стат. массива). По этому значение самого первого элемента самого первого массива в массиве массивов можно получить по указателю на указатель на значение.

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

Создание динамической конструкции из элементов структуры (дерево) - C++
здравствуйте. Задание такое: Написать программу для создания динамической конструкции из элементов структуры, каждый из которых...

Удаление столбцов из динамической матрицы - C++
Здравствуйте, уважаемые форумчане! Возникла такая вот беда: Нужно из двумерного динамического массива удалить все столбцы, в которых...

Функция транспонирования динамической матрицы N*M - C++
Собственно сабж. Если точнее, проблема возникла с не самим алгоритмом транспонирования, а с выводом (сначала выводится обычная). Не...

Вычитание столбцов динамической матрицы - C++
Дана прямоугольная матрица В размером N×M. Составить программу, которая преобразует матрицу следующим образом: поэлементно вычитает первый...


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

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

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