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

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

Войти
Регистрация
Восстановить пароль
 
.-Caxap-.
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 2
#1

Нужна консультация - C++

01.07.2012, 17:18. Просмотров 427. Ответов 5
Метки нет (Все метки)

подскажите что означают эти две строчки? преподаватель попросил конкретно рассказать каждое слово.Почему повторяются delete array? выручайте)
for(unsigned i=0;i<rows;i++)delete []array[i];
delete []array;

вот исходный :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <conio.h>
#include <iomanip>
 
#ifdef max
#undef max
#endif
 
using namespace std;
 
int main()
{
 setlocale(0," ");
 // Ввод размерностей матрицы
 cout<<"Vvedute kol-vo ctrok matrici:";
 unsigned rows;
 cin>>rows;
 // Динамически размещаем матрицу
 int** array=new int*[rows];
 cout<<"Vvedute kol-vo ctolpchov matrichi:";
 unsigned cols;
 cin>>cols;
 // Ввод элементов матрицы построчно
 for(unsigned i=0;i<rows;i++)
 {
  array[i]=new int[cols];
  for(unsigned j=0;j<cols;j++)
  {
   cout<<"A["<<i+1<<"]["<<j+1<<"]=";
   cin>>array[i][j];
  }
 }
 // Печатаем матрицу
 cout<<"Icxodna9 matricha:"<<endl;
 for(unsigned i=0;i<rows;i++)
 {
  for(unsigned j=0;j<cols;j++)cout<<setw(7)<<array[i][j]<<' ';
  cout<<endl;
 }
 // Считаем сумму
 int sum=0;
 for(unsigned j=0;j<cols;j++)
 {
  bool flag=true;   // true - если нет отрицательных в столбце
  int sumincol=0;   // сумма элементов в столбце
  for(unsigned i=0;i<rows;i++)
  {
   if(array[i][j]<0)
   {
    flag=false;
    break;
   }
   sumincol+=array[i][j];
  }
  sum+=sumincol*flag;
 }
 // Освобождаем память
 for(unsigned i=0;i<rows;i++)delete []array[i];
 delete []array;
 // Печатаем результат
 cout<<"+ elementov v ctolbchax ne coderchahix otrichatelbnix elementov:"<<sum<<endl;
 system("PAUSE");
 return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2012, 17:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужна консультация (C++):

Нужна консультация - C++
#include &lt;iostream&gt; #define N 30 using namespace std; int main() { int a; int i,k; float sum; for (i=0; i&lt;N; i++) if ( a...

Нужна консультация - C++
Какие знания должны быть, что бы написать программку (на С++) взаимодействующюю с другими сторонними? То есть например АртМани, или бота...

Нужна консультация по ДМ - C++
Все привет. Вообщем задали нам курсовую по Дискр. Мат-ке. Мне досталась тема &quot;Эфективное кодирование. Сжатие текса&quot;. Литература есть,...

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

Нужна консультация специалистов - C++
Доброго времени всем. Я только учусь и второй день пытаюсь скомпилировать в Visual C++ из исходников программу. Но... Выдает вот такую...

Нужна консультация, уважаемые программисты - C++
Очень нужна Ваша помощь, потому что в этом я должным образом не разбираюсь. Программу я нашёл на просторах Интернета, которая целиком и...

5
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
01.07.2012, 17:22 #2
Цитата Сообщение от .-Caxap-. Посмотреть сообщение
for(unsigned i=0;i<rows;i++)delete []array[i];
это массив указателей на указатель,то есть каждый элемент массива указывает на начало другого массива
Цитата Сообщение от .-Caxap-. Посмотреть сообщение
delete []array;
здесь удаляем укзаатель на начало массива array
1
.-Caxap-.
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 2
01.07.2012, 17:24 #3
спасибо)
0
Andrey.K
343 / 264 / 15
Регистрация: 14.11.2010
Сообщений: 482
01.07.2012, 17:27 #4
C++
1
for(unsigned i=0;i<rows;i++)delete []array[i];
- тут идем освобождение памяти каждой строки матрицы
C++
1
 delete []array;
- тут уничтожение вспомогательного массива указателей
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
01.07.2012, 17:29 #5
Цитата Сообщение от alexey31415 Посмотреть сообщение
это массив указателей на указатель,то есть каждый элемент массива указывает на начало другого массива
Ты не отличаешь декларацию от освобождения? Это не массив указателей на массивы, а удаление динамического массива динамических массивов.
0
alexey31415
01.07.2012, 17:33     Нужна консультация
  #6

Не по теме:


Цитата Сообщение от taras atavin Посмотреть сообщение
Ты не отличаешь декларацию от освобождения? Это не массив указателей на массивы, удаление динамического массива динамических массивов.
я говорил про сам массив,человек сам попросил подробно объяснить

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2012, 17:33
Привет! Вот еще темы с ответами:

Нужна консультация по Visual Studio 6.0 - C++
Я никогда не писал в вижуал студии, и у меня ее нет, чтобы проверить, поэтому прошу консультации. Есть небольшая прога на досовом...

нужна консультация по C++, относительно AVR - C++
несколько дней как начал изучать C++, прошу помочь в следующем: не понимаю, как работает следующий отрывок 1. switch (a)......

Только начинаю писать на с++, нужна консультация - C++
В общем, скачал visual studio 2010, пpочитав паpу статей, попpобовал написать пpостеньку пpогу, но она не компилиpуется. Скажите что я...

Решение задачи не требуется, нужна только в консультация!)) - C++
доброе время суток. моё задание: Множество целочисленных констант используемого языка реализации. вообще у меня задание это по...


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

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

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