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

Матрица, выделение динамической памяти - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 5.00
MatrixN2
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 8
24.12.2008, 19:46     Матрица, выделение динамической памяти #1
В общем у меня такая проблема: нужно решить задачу двумя способами, сначала без выделения динамической памяти , потом с её выделением . задача звучит так :
Дана матрица 7х7 найти сумму всех отрицательных элементов этой матрицы , результат вывести на экран .


ну я вроде бы без выделения динамической памяти сделал. (как-то так):
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
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
 
void main()
{
clrscr();
int mas[7][7];
int sum=0;
for(int n=0;n<7;n++)
{
for(int m=0;m<7;m++)
mas[n][m]=rand()%15-10;
}
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
if (mas[i][j] < 0)  sum=sum+mas[i][j];
}
cout<<"summa otric elementov = "<<sum;
getch();
}
а вот с выделением динамической памяти я не знаю как делать , помогите чем сможете , зараннее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2008, 19:46     Матрица, выделение динамической памяти
Посмотрите здесь:

C++ Выделение динамической памяти
Выделение динамической памяти C++ C++
C++ выделение динамической памяти
Выделение динамической памяти C++
C++ Выделение динамической памяти
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Otaka
 Аватар для Otaka
1816 / 672 / 19
Регистрация: 11.12.2008
Сообщений: 1,019
24.12.2008, 20:07     Матрица, выделение динамической памяти #2
Вместо
C++
1
int mas[7][7];
поставь
C++
1
2
3
int**mas;
mas=new int*[7];
for(int i=0;i<7;i++)mas[i]=new int[7];
MatrixN2
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 8
24.12.2008, 20:15  [ТС]     Матрица, выделение динамической памяти #3
а про динамическую память не подскажешь ? просто я вообще не знаю что это (

Добавлено через 2 минуты 29 секунд
или это и было про динамическую память ?

П.С. правка сообщений чет не работает.
Otaka
 Аватар для Otaka
1816 / 672 / 19
Регистрация: 11.12.2008
Сообщений: 1,019
24.12.2008, 20:21     Матрица, выделение динамической памяти #4
int mas[7][7]; - статическое выделение памяти в стеке.
new int[7] - динамическое выделение памяти.
MatrixN2
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 8
24.12.2008, 20:27  [ТС]     Матрица, выделение динамической памяти #5
спасибо огромное!
Kolyaa
1 / 1 / 0
Регистрация: 29.12.2010
Сообщений: 6
29.12.2010, 16:11     Матрица, выделение динамической памяти #6
Цитата Сообщение от Otaka Посмотреть сообщение
int mas[7][7]; - статическое выделение памяти в стеке.
new int[7] - динамическое выделение памяти.
Кто нибудь подскажите как теперь полностью освободить память, занимаемую матрицей ??
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
29.12.2010, 17:10     Матрица, выделение динамической памяти #7
Цитата Сообщение от Kolyaa Посмотреть сообщение
Кто нибудь подскажите как теперь полностью освободить память, занимаемую матрицей ??
Если к примеру есть матрица mat[m][n], то так

C++
1
2
3
4
5
for(int i=0; i<m; i++)
  {
      delete mat[i];
  }
    delete [] mat;
Kolyaa
1 / 1 / 0
Регистрация: 29.12.2010
Сообщений: 6
29.12.2010, 20:01     Матрица, выделение динамической памяти #8
спасибо, а так можно ?
C++
1
2
for(i=0;i<n;i++)delete[] mat[i];
    delete[]mat;
Добавлено через 2 часа 37 минут
допустима такая альтернатива или нет ???
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
29.12.2010, 21:45     Матрица, выделение динамической памяти #9
Цитата Сообщение от Kolyaa Посмотреть сообщение
допустима такая альтернатива или нет ???
Точно не буду говорить, но такая допустима

C++
1
2
for(i=0;i<n;i++)delete mat[i];
    delete[]mat;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 22:07     Матрица, выделение динамической памяти
Еще ссылки по теме:

C++ Выделение динамической памяти
Выделение динамической памяти C++
Выделение и очистка динамической памяти C++

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

Или воспользуйтесь поиском по форуму:
Kolyaa
1 / 1 / 0
Регистрация: 29.12.2010
Сообщений: 6
29.12.2010, 22:07     Матрица, выделение динамической памяти #10
ок....спасиб
Yandex
Объявления
29.12.2010, 22:07     Матрица, выделение динамической памяти
Ответ Создать тему
Опции темы

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