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

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

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

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

05.12.2011, 06:34. Просмотров 3563. Ответов 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...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Bers
Заблокирован
06.12.2011, 04:47 #31
Цитата Сообщение от alkagolik Посмотреть сообщение
нет, это область памяти, в которой есть информация. Инициализация - это заполнение своей, если угодно - нужной, первоначальной информацией этой области памяти.
Вот эта фраза сказанная в терминах на языке си.
Потому что в си, вы явно выделяете область памяти. И явно же её первоначально заполняете.

В с++ первоначальным заполнением области-памяти занимаются конструкторы.
И это называется "инициализация объекта".

А присвоение - тут уже запустится operator=
Это изменение значений области памяти, уже после того, как объект создан.

По этому, на с++ есть четкое разделение понятия инициализации, и понятия присвоения.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.12.2011, 04:47 #32
Цитата Сообщение от alkagolik Посмотреть сообщение
это его инициализация. Установка в исходное положение.
Простой пример, доказывающий обратное.
C++
1
2
 const int value; //  error
 value = 5;
0
Bers
Заблокирован
06.12.2011, 04:48 #33
а есть ещё более унифицированное понятие того, что есть инициализация.

Инициализация - есть захват ресурса.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.12.2011, 04:49 #34
Цитата Сообщение от greeezz Посмотреть сообщение
Керниган,Ритчи - Программирование на C.
Причем тут С?
Не знаю С, но в С++, как уже выше сказали, инициализация и присваивание разные вещи.
0
alkagolik
Заблокирован
06.12.2011, 04:56 #35
Цитата Сообщение от Chelioss Посмотреть сообщение
C++
1
2
const int value; // error 
value = 5;
это пример как нельзя делать? Тогда я еще один добавлю для гармонии. Он даже скомпилируется
C
1
int const x;
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.12.2011, 04:59 #36
Я же сказал, причем тут С? Речь о С++ идет. Читай первое сообщение топика.
Или new и delete уже в С появился?

Добавлено через 38 секунд
Цитата Сообщение от alkagolik Посмотреть сообщение
это пример как нельзя делать?
Это пример, показывающий, что присваивание!=инициализации.
0
Bers
Заблокирован
06.12.2011, 04:59 #37
alkagolik, попытайтесь уловить разницу:

C++
1
2
int n;  //инициализация по дефолту
n=10; //присвоение уже инициализированной переменной
Я не захотел инициализировать переменную значением.
Меня вполне устраивает дефолтная инициализация. Переменная полностью построена, и готова к употреблению.

C++
1
2
int n(10);  //инициализация явным значением. 
//n=10; //теперь, делать присвоение уже не нужно.
причем, эта запись эквивалентна следующей:

C++
1
2
3
int n=10;  //инициализация явным значением. 
               //на самом деле здесь запускается
               // конструктор, а не оператор=
0
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
06.12.2011, 05:04 #38
Цитата Сообщение от Chelioss Посмотреть сообщение
Не знаю С, но в С++, как уже выше сказали, инициализация и присваивание разные вещи.
тогда читайте ТУТ
0
alkagolik
Заблокирован
06.12.2011, 05:06 #39
Цитата Сообщение от Chelioss Посмотреть сообщение
Это пример, показывающий, что присваивание!=инициализации.
покажите где я сказал что эти понятия эквивалентны, или вообще что-то подобное.
Bers, да, согласен с вами, явно либо неявно все инициализируется при же выделении. Мы просто немного по разному трактуем само понятие. А вообще по моему это все суета.

Добавлено через 1 минуту
Цитата Сообщение от greeezz Посмотреть сообщение
тогда читайте ТУТ
а вот что именно надо прочитать. Чтобы долго не искать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// initialization of variables
 
#include <iostream>
using namespace std;
 
int main ()
{
  int a=5;               // initial value = 5
  int b(2);              // initial value = 2
  int result;            // initial value undetermined
 
  a = a + 3;
  result = a - b;
  cout << result;
 
  return 0;
}
0
Bers
Заблокирован
06.12.2011, 05:09 #40
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main ()
{
* int a=5; * * * * * * * // initial value = 5 Запуск конструктора
* int b(2); * * * * * * *// initial value = 2 Запуск конструктора
* int result; * * * * * *// initial value undetermined Запуск конструктора
a = a + 3; // запуск operator=
* result = a - b; // запуск operator=
* cout << result;
return 0;
}
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.12.2011, 05:10 #41
И что в этом коде показывается? Вы сами то понимаете?
0
Nastya24
32 / 18 / 4
Регистрация: 30.09.2011
Сообщений: 59
06.12.2011, 13:00 #42
Цитата Сообщение от VladSharikov Посмотреть сообщение
я знаю.

инициализация - это.
в любом случае, не придирайтесь к терминам.

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

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

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

Добавлено через 6 минут
количество линий?
f-это размер матрицы,если она квадратная.
1
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
06.12.2011, 13:50  [ТС] #43
да уже разобрался, спасибо большое.

закройте тему, а то будет еще +5 страниц.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
06.12.2011, 17:54 #44
Цитата Сообщение от VladSharikov Посмотреть сообщение
а то будет еще +5 страниц.
Топик лопнет от этого что ли?
0
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
06.12.2011, 18:26  [ТС] #45
Не лопнет.
А оно вам надо?
Я думаю, есть отдельные разделы для флуда.

А писать умные сообщения лучше в отдельных темах и прикреплять их раз уж на то пошло.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 18:26
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.12.2011, 18:26
Ответ Создать тему
Опции темы

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