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

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

Восстановить пароль Регистрация
 
.-Caxap-.
Сообщений: n/a
01.07.2012, 17:18     Нужна консультация #1
подскажите что означают эти две строчки? преподаватель попросил конкретно рассказать каждое слово.Почему повторяются 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2012, 17:18     Нужна консультация
Посмотрите здесь:

Нужна консультация по Visual Studio 6.0 C++
C++ Подскажите,нужна консультация
Нужна консультация C++
Нужна консультация по ДМ C++
C++ нужна консультация по C++, относительно AVR
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexey31415
 Аватар для 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
.-Caxap-.
Сообщений: n/a
01.07.2012, 17:24     Нужна консультация #3
спасибо)
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
01.07.2012, 17:27     Нужна консультация #4
C++
1
for(unsigned i=0;i<rows;i++)delete []array[i];
- тут идем освобождение памяти каждой строки матрицы
C++
1
 delete []array;
- тут уничтожение вспомогательного массива указателей
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
01.07.2012, 17:29     Нужна консультация #5
Цитата Сообщение от alexey31415 Посмотреть сообщение
это массив указателей на указатель,то есть каждый элемент массива указывает на начало другого массива
Ты не отличаешь декларацию от освобождения? Это не массив указателей на массивы, а удаление динамического массива динамических массивов.
alexey31415
01.07.2012, 17:33     Нужна консультация
  #6

Не по теме:


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

Yandex
Объявления
01.07.2012, 17:33     Нужна консультация
Ответ Создать тему
Опции темы

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