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

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

Войти
Регистрация
Восстановить пароль
 
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
#1

Не удаляется матрицы - C++

14.01.2011, 03:16. Просмотров 278. Ответов 0
Метки нет (Все метки)

В самом конце кода есть два оператора
delete []mas;
delete []mass;
Первый сработал, а второй выдал ошибку.
Это происходит с не квадратной матрицей, например, 3х4.
А вот с квадратным матрицами работает программа нормально.
Вводить только отрицательные числа!

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int** input(int m,int n);
void output(int **mas, int m,int n);
int resmas(int **mas,int m,int n);
void editmas(int m,int n,int **mas);
void main(void)
{ 
int n,m;    cout<<endl<<"vvedi koli4estvo strok"<<endl; cin >> m; 
      cout<<"vvedi koli4estvo stolbcov"<<endl; cin >> n;
      
    
 do{
    int **mas=input(m,n);
    
 
    output(mas,m,n); cout<<endl; 
 
      editmas(m,n,mas); 
    
    }
    while(_getch()=='y');
}
 
//1 din
 
#include <iostream> 
using namespace std;
int *entermas(int N);
int** input(int m,int n)
{int **mas = new int *[m];
    for(int i=0; i<m; i++) 
      mas[i]=entermas(n);            
return mas;}      
 
 
int *entermas(int N)
{ 
int *mas0 = new int [N];
  for(int i=0;i!=N;i++) {cout << "vvedite "<< i+1<<" element massiva "<< endl;
cin >> mas0[i];
 
}; return mas0;
}
 
  
//2 din
 
#include <iostream>
using namespace std;
void output(int **mas, int m,int n)
{
  for (int i = 0,j = 0; i!=m; i++){
for (j=0; j!=n; j++){cout << *(*(mas+i)+j)<<" ";
};cout<<endl;};}
 
//3 din
 
#include <math.h>
#include <iostream>
 
using namespace std;
 
void output(int **mas, int m,int n);
 
int resmas(int **mas, int m,int n)
{
  int s=0;
for(int i=0;i!=m;i++)
{ 
  for(int j=0;j!=n;j++)
  {s=s+mas[i][j];}
;}
;
if (s>=0) return 0; return 1;}
 
 
void editmas(int m,int n,int **mas)
{int i,j=1,z,min;
 
if(resmas(mas,m,n)!=0){
 
int **mass = new int *[m];
    for(int i=0; i<n; i++) 
          mass[i]=new int [n];
 
 
 
  for(int i=0;i!=m;i++){min=0;
 
    for(int j=1;j!=n;j++){ 
 
        if(abs(mas[i][j])<abs(mas[i][min])) min=j; };
  z=mas[i][min];   mas[i][min]=mas[i][i]; mas[i][i]=z;
  };
  
  i=0; 
for(int i=0;i!=m;i++){for(int j=0;j!=n;j++){ mass[i][j]=mas[i][j];};};   
      output(mass,m,n);
 
for(int i=0;i<m;++i){
  delete []mas[i];
  delete []mass[i];
  };
  delete []mas;
  delete []mass;
 
}
 
      else cout<<"tak ne poidet!!"<<endl; cout<<"povtorit'?"<<endl;
}
Добавлено через 22 минуты
Нашел ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2011, 03:16     Не удаляется матрицы
Посмотрите здесь:

Free - не удаляется память - C++
free(Items.info);//для последнего элемента память не уудаляется - костыль!!!!!!!!!!!!!!! делал лабу на СИ, пришлось соответственно...

Не удаляется 2-х связный список - C++
Работает все, но сам список не удаляется. Помогите найти проблему. #include &lt;iostream&gt; using namespace std; struct Node { ...

не удаляется элемент из массива - C++
Всем привет. Есть 2 ф-ции одна добавляет в конец массива новый елемент(работает нормально), а вторая должна удалять из массива любой...

Почему удаляется объект? - C++
Помогите, пожалуйста, понять почему удаляется объект и как это исправить? Идея следующая: В Source.cpp я создаю два объекта, вызывая...

Переменная удаляется после присваивания - C++
После строки 85 переменная c почему-то удаляется. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; ...

Не удаляется последний символ строки - C++
Почему не удаляет последний символ строки, выдает, что такого символа нет. Как это исправить, помогите, пожалуйста. puts(&quot;enter char for...

Корректно ли удаляется динамически созданный массив? - C++
Собственно, интересует нечто подобное (очень утрированно): int* i1 = new int ; ... заполняется i1 ... int* i2 = i1; i1 = new int...

Объект удаляется до возвращения его из функции - C++
Есть следующий код перегрузки операции &quot;+&quot; для сложения матриц: Matrix operator+(const Matrix &amp;x) { Matrix result(*this); ...

удаляется ли объект или происходит утечка памяти? - C++
Добрый день, подскажите, при таком коде, удаляется ли объект или происходит утечка памяти? std::list&lt;A*&gt; entities; ...

Динамический массив структур (не происходит передачи и некорректно удаляется) - C++
Всем привет! Решил изучить динамический массив через realloc... Написал простенькую программу... Но при ее выполнении не...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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