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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.93
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
#1

Как инициализировать динамическую матрицу? - C++

05.12.2011, 06:34. Просмотров 3613. Ответов 47
Метки нет (Все метки)

2 вопроса.
2 подвопроса =).

1) Как инициализировать динамическую матрицу?
Желательно через new и delete, но можно и другое.
2) Как передавать эту матрицу в функцию?
а) Прототип функции.
б) Как обращаться к матрице внутри функции?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 06:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как инициализировать динамическую матрицу? (C++):

Как объявить динамическую матрицу - C++
Как объявить динамическую матрицу

Как добавить k столбцов в динамическую матрицу? - C++
Программка работает некорректно, в чем ошибка? #pragma argsused #include <iostream.h> #include <conio.h> int i,j; ...

Как инициализировать двумерную матрицу натуральными логарифмами? - C++
Всем привет, столкнулся с небольшой проблемой, мне нужно инициализировать матрицу в таком виде: A = { {ln2,...

Подскажите кто-нибудь, как записать квадратную динамическую матрицу в файл??? - C++
Подскажите кто-нибудь, как записать квадратную динамическую матрицу в файл??? Вот я её заполнил: #include<iostream> #include<stdio.h>...

Сделать динамическую матрицу - C++
Имеется код для статической матрицы, как сделать её динамической? #include <stdio.h> #include <math.h> #include <conio.h> #include...

Добавление столбца в динамическую матрицу - C++
Доброго времени суток. Возникла проблема с методом добавления столбца в динамическую матрицу. Подскажите ошибку, пожалуйста void...

47
Nastya24
32 / 18 / 4
Регистрация: 30.09.2011
Сообщений: 59
05.12.2011, 08:35 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int**mas=new int *[f];
for( int i=0;i<f;i++)     
mas[i]=new int[f];
 
for( int i=0;i<f;i++)  
for( int j=0;j<f;j++) 
mas[i][j]=...            
 
for( int i=0;i<f;i++)
delete [] mas[i];    
delete [] mas;
 
void funk(int **&matr)
2
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
05.12.2011, 10:39 #3
C++
1
void funk(int **&matr)
не дохрена ли символов?
не надо амперсант. просто две звезды
0
Nastya24
32 / 18 / 4
Регистрация: 30.09.2011
Сообщений: 59
05.12.2011, 11:17 #4
Цитата Сообщение от co6ak Посмотреть сообщение
C++
1
void funk(int **&matr)
не дохрена ли символов?
не надо амперсант. просто две звезды
Без & значение matr в другую функцию передаваться не будет
0
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
05.12.2011, 11:22 #5
Цитата Сообщение от Nastya24 Посмотреть сообщение
Без & значение matr в другую функцию передаваться не будет
с какова это бодуна?
смотри вот сюда ))
и попробуй скомпилить. все замечательно работает
0
Nastya24
32 / 18 / 4
Регистрация: 30.09.2011
Сообщений: 59
05.12.2011, 11:23 #6
Цитата Сообщение от co6ak Посмотреть сообщение
с какова это бодуна?
смотри вот сюда ))
и попробуй скомпилить. все замечательно работает
Да ты крут ёпте)
0
accept
4823 / 3244 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2011, 12:46 #7
когда функция должна поменять значение в указателе, тогда нужна ссылка
когда нужно просто проинициализировать матрицу, достаточно указатель передать (и размерность обязательно)
0
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
06.12.2011, 02:53  [ТС] #8
Nastya24,

поподробнее можно?

C++
1
2
3
4
5
6
7
int**mas=new int *[f];
for( int i=0;i<f;i++)     
mas[i]=new int[f];
 
for( int i=0;i<f;i++)  
for( int j=0;j<f;j++) 
mas[i][j]=...
f размер? то есть кол-во строк*кол-во столбцов?

int**mas=new int *[f];
for( int i=0;i<f;i++)
mas[i]=new int[f];
иницилазируем матрицу, инициализируем f массивов(f строк), так?

for( int i=0;i<f;i++)
for( int j=0;j<f;j++)
mas[i][j]=...
собственно заполняем массив? так?

Добавлено через 5 минут
Как из программы обращаться к функции void funk(int **&matr) ?

C++
1
funk(mas)
?
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.12.2011, 02:58 #9
Цитата Сообщение от Nastya24 Посмотреть сообщение
mas[i][j]=...
Это не инициализация, а присваивание.
0
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
06.12.2011, 03:35  [ТС] #10
Цитата Сообщение от VladSharikov Посмотреть сообщение
mas[i][j]=...
собственно заполняем массив? так?
я знаю.
Цитата Сообщение от VladSharikov Посмотреть сообщение
int**mas=new int *[f];
for( int i=0;i<f;i++) * *
mas[i]=new int[f];
инициализация - это.
в любом случае, не придирайтесь к терминам.

есть что-то по моим вопросам?

Добавлено через 15 минут
Настя,

f в вашей программе, что это?

Добавлено через 6 минут
количество линий?
0
Bers
Заблокирован
06.12.2011, 03:50 #11
Цитата Сообщение от VladSharikov Посмотреть сообщение
f в вашей программе, что это?
количество элементов массива) каждый элемент - указатель на ещё один массив)
0
alkagolik
Заблокирован
06.12.2011, 03:52 #12
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
#include <stdio.h>
#include <stdlib.h>
 
void init (char *x, short n, short m)
{
    short i = 0, num = m * n;
    while( i < num)
    {
        x[ i ] = rand() % 2;
        ++i;
    }
}
 
int main( void )
{
    char n = 10, m = 10;
    char i = 0, j;
    char matr[ n ][ m ];
 
    init (&matr, n, m);
 
    for ( i ; i < n; ++i )
    {
        puts("");
        for ( j = 0; j < m; ++j)
            printf("%i ", matr[ i ][ j ]);
    }
 
    return 0;
}
0
Bers
Заблокирован
06.12.2011, 03:54 #13
alkagolik, в задании речь идет:


Цитата Сообщение от VladSharikov Посмотреть сообщение
1) Как инициализировать динамическую матрицу?
Желательно через new и delete, но можно и другое.
У вас:

Цитата Сообщение от alkagolik Посмотреть сообщение
char matr[ n ][ m ];
Стековый)

Итого: вы решили совсем другую задачу)
0
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
06.12.2011, 03:55  [ТС] #14
Может быть количество строк матрицы?

То есть мы делаем f массивов, размера f или как?
0
greeezz
273 / 166 / 4
Регистрация: 10.07.2011
Сообщений: 441
06.12.2011, 03:56 #15
C++
1
2
3
int**mas=new int *[f];    //ТУТ КОЛИЧЕСТВО СТРОК
.....
mas[i]=new int[f]; // ТУТ КОЛИЧЕСТВО КОЛОНОК
0
06.12.2011, 03:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 03:56
Привет! Вот еще темы с ответами:

Выделение памяти под динамическую матрицу в С - C++
Люди помогите с 2 вопросами а то я чет не понимаю 1.Выделение памяти под динамическую матрицу в С(напише плиз как обьявлется матрица и...

Создать динамическую матрицу вещественных чисел - C++
здрасти, помогите создать двумерный динамический массив вещест. чисел

Дополнить матрицу столбцом, содержащим максимумы по строкам. Использовать динамическую память - C++
Помогите пожалуйста исправить код. Вместо столбца, содержащего максимумы по строкам, выводит первый столбец. #include &lt;iostream&gt; ...

Дополнить матрицу столбцом, содержащим максимумы по строкам. Использовать динамическую память - C++
Дополнить матрицу столбцом, содержащим максимумы по строкам. Использовать динамическую память.(Нужно максимально простое решение, для...


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

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

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