13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
1 | |
Как изменить размерность матрицы21.07.2011, 21:59. Показов 5862. Ответов 27
Метки нет (Все метки)
Помогите плз. Мне нужно просграммно поменять размерность матрицы. Например была матрица mat[5][5]
а должна получиться после определенных вычислений mat[6][7]. Буду очень благадарен.
0
|
21.07.2011, 21:59 | |
Ответы с готовыми решениями:
27
Как самому задать размерность матрицы? Как из файла прочитать размерность матрицы и её содержимое? Как сделать так чтобы можно было задавать размерность матрицы самому Изменить программу, чтобы размерность массива определялась динамически |
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
21.07.2011, 22:10 | 2 |
Так ты просто объяви матрицу [6][7] и всё, и скопируй содержимое [5][5] в [6][7] как тебе надо
1
|
Каратель
|
||||||
21.07.2011, 22:14 | 3 | |||||
1
|
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
|
||||||
21.07.2011, 22:49 | 4 | |||||
gr_8_zizu,
Как вариант:
1
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
21.07.2011, 23:01 | 5 | |||||
Можно еще так:
1
|
13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
22.07.2011, 00:13 [ТС] | 6 |
Я прошу прощения я немного не уточнил, какой размерности будет матрица будет извесно только в ходе выполнения, тоесть по определенному алгоритму. Мне необходимо просто расширить матрицу. Но я продумывал вариан, такой как просто создание новой матрицы при помощи например new. Но вот тут возникла небольшая проблема, для одномерных массивов этот вариант работает хорошо, но вот для двумерного в маем случае уже ругается. Может быть кто нить знает как с этим бороться. Было бы не плохо узнать, а то я уже и алгоритм под этот случая разобрал. Выручайте!
Добавлено через 2 минуты спасибо за помощь, но вот клас вектор для меня вообще темный лес, и боюсь если залезу то долго вылезать буду, а мне работу надо до сентября месяца здать. Так что лучше примерчик с int массивами написал бы, и все равно спасибо.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
22.07.2011, 00:34 | 7 | |||||
А какой твой случай-то?
1
|
13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
22.07.2011, 00:49 [ТС] | 8 |
Под случаем я имел ввиду двумерный массив объявить надо. И не получается пример который ты написал, пишет:"... 'Acces violation at address 00401379'..."
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
||||||
22.07.2011, 00:53 | 9 | |||||
Нужно так:
1
|
13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
22.07.2011, 00:59 [ТС] | 10 |
Спасибо уже получилось. А зачем его потом удалять? Если он мне нужен будет все время им же можно будет пользоваться как обычным массивом или он только временным может быть?
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
22.07.2011, 01:02 | 11 |
Да.
Когда он вам станет не нужен, тогда и удалите память, я так понимаю в вашей ситуации -- в конце программы.
1
|
13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
22.07.2011, 01:05 [ТС] | 12 |
Когда он вам станет не нужен, тогда и удалите память, я так понимаю в вашей ситуации -- в конце программы.[/QUOTE]
Этот массив и будет являться результатом моей программы только немного преобразованный. А доступ к такому массиву такойже как и к обычному? и как с адресами в таком случае?
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
22.07.2011, 01:08 | 13 |
0
|
13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
22.07.2011, 01:27 [ТС] | 14 |
ну в обычном массиве адреса элементов распологаются подрят, а в этом случае так же? Или тут подрят идут адреса только строк, а столбцов уже могут распологаться в другом месте, или все идет подрят как в обычном массиве?
Добавлено через 11 минут Например: если работать с указателями, то адрес pArray+1 будет в соседнем байте с pArray так?
0
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
22.07.2011, 01:48 | 15 |
Думаю так будет понятно: pArry[i][j] <=> *(*(pArray + i) + j)
Добавлено через 41 секунду Это и есть обычный масив, только память мы под него выделили динамически.
0
|
Программист
119 / 97 / 11
Регистрация: 22.03.2011
Сообщений: 244
|
|
22.07.2011, 01:50 | 16 |
Да, вы совершенно правы. Работа с массивами и указателями на массив ведется идентично - единственное, что надо иметь ввиду - это передача в функции, если вы передаете функции, ожидающей, скажем, например? int** int[5][5], то в данном случае требуется явное преобразование - либо прототип функции описывать явно.
0
|
13 / 8 / 3
Регистрация: 07.01.2011
Сообщений: 149
|
|
22.07.2011, 02:13 [ТС] | 17 |
Всем спасибо, разобрался, все получилось!
0
|
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 19
|
|
22.07.2011, 14:14 | 18 |
Затем, что здесь создается динамический массив, а 6 - это его максимальный размер. После использования динамической памяти, её надо очистить с помощью delete.
Сомневаюсь что массив тебе будет нужен после окончания работы программы.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
22.07.2011, 15:39 | 19 |
По окончании работы динамический массив удалится сам. Но всё равно нужно приучать себя удалять принудительно. Потом это умение и привычка воздастся сторицей.
0
|
Каратель
|
|
22.07.2011, 19:20 | 20 |
0
|
22.07.2011, 19:20 | |
22.07.2011, 19:20 | |
Помогаю со студенческими работами здесь
20
Проверьте пожалуйста указатели , размерность ответа не влазит что изменить Размер vs. размерность матрицы Размерность матрицы в файле Считать из файла размерность матрицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |