Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Курсовая работа!прошу ответить вас) вобщем вот я взяла курсовую работу по теме "Система тестирования" это по дисциплине "Высокоуровневые методы информатики и программирования" ни разу в жизни не делала курсовик есть только... https://www.cyberforum.ru/ cpp-beginners/ thread263494.html Определить, каким алгоритмом зашифрована ссылка C++
помогить опредилить как зашифрована ссылка(какой алгоритм)?!! 2iob3gRLva940dFNGfymv59mvak70dYLG54ZkxJ1vcyNUNsayQAayHm50iUr
C++ горизонтальная гистограмма https://www.cyberforum.ru/ cpp-beginners/ thread263489.html
можете пояснить как работает эта программа и почему здесь нет массива строки?? void main() { int b, dr=1; while (b=getchar()) { if (b==' ' || b=='\n' || b=='\t') { dr=1; putchar(' ');
C++ НАПИСАТЬ ПРОГРАММУ ПО ГРАФИКУ!! https://www.cyberforum.ru/ cpp-beginners/ thread263485.html
НАПИСАТЬ ПРОГРАММУ ПО ГРАФИКУ!!
C++ с++
Необходимо отсортировать список по возрастанию таким образом: максимальный элемент перебрасывается в начало нового списка.помогите))
C++ Отсортировать список по возрастанию таким образом Необходимо отсортировать список по возрастанию таким образом: максимальный элемент перебрасывается в начало нового списка.помогите)) https://www.cyberforum.ru/ cpp-beginners/ thread263470.html
C++ Использование команды system(); Без всяких окон (без dos и т.д) Вообще реально сделать чтобы обратиться к системе в фоновом режиме. Без отрытия dos. Без всякой командной строки. Просто чтоб запускал программу и она сразу она выполнялось. Без Всяких постороних... https://www.cyberforum.ru/ cpp-beginners/ thread263468.html Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см. рис.). Основные этапы работы с матрицами (построение, ввод...
C++ Увидеть все пакеты в сети. pcap Здравствуйте! У меня такая проблема. Написал программу, которая с помощью pcap ловит пакеты в локальной сети и анализирует их содержимое. Вот её код: /* prototype of the packet handler */ void... https://www.cyberforum.ru/ cpp-beginners/ thread263442.html C++ интерфейс для консольной программы https://www.cyberforum.ru/ cpp-beginners/ thread263441.html
А не подскажите, как в консольной проге менять шрифт текста или цвет фона и текста, или как создавать таблицы (если все это конечно возможно), и можно ли для консольной программы поставить свою...
Логические и Промежуточные операции C++
Задано целое без знаковое число N(3CA7 число в шестнадцатеричной системе счисления) распечатать его в 10 и 16 системе счисление.Определить количество байтов занимаемое числом. Выделить К(8)...
C++ Обход доски шахматным конем решал задачу "Тур конем". : На шахматной доске размером n*n на поле с координатами x0,y0 находится конь - фигура , перемещающаяся по шахматным правилам. Задача заключается в поиске... https://www.cyberforum.ru/ cpp-beginners/ thread263412.html
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 11
0

Не работает деструктор - C++ - Ответ 1483404

24.03.2011, 19:53. Показов 4646. Ответов 3
Метки (Все метки)

Прошу помощи.Делаю лабораторную. Написал программу для подсчета суммы элементов в тех строках динамического массива, которые содержат хотя бы один отрицательный элемент. Все работает, но есть проблема. При попытке выйти из программы появляется ошибка:
"Необработанное исключение в "0x5fa959da (msvcr100d.dll)" в "Chapter2.exe": 0xC0000005: Нарушение прав доступа при чтении "0xcdcdcdc1".
При удалении из программы деструктора ошибка не появляется.
Я так понимаю деструктор почему-то не может очистить память при выходе из программы?
Вот код:
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream>
using namespace std;
#include <conio.h>
#include <ctime>
 
class Array                                 //создаем класс Х
   {
  private:     
      int **x;                            // данные класса
      int m,n;
      
   public:                   
       Array (int,int);                 //метод конструктор
       ~Array ();                       //метод деструктор
      void Set (int,int);               // метод для задания значений массива
      friend void Run(Array&);              //функция друг; решает поставленную задачу
      void Print(void);              //метод просмотра нового текущего значения 
     
   };
///////////////////////////////////////////////////////////////////////
 Array::Array(int x1,int y1): m(x1), n(y1)  //определение конструктора
 {                            
    x = new  int*[m];           //выделяем память под переменные
    for(int i=1;i<=m;i++)
    x[i]= new int[n];
    //srand(time(NULL));
    for (int i=1; i<=m; i++)
    for (int j=1; j<=n; j++)
    *(*(x+i)+j)=rand()%10-4;//создаем массив случайных чисел, применение косвенной адресации
 }
 
 
 Array::~Array ()                                //определение деконструктора
      {
 
        for (int i=0; i<m; i++)     // Освобождение памяти
    {
        delete [ ] x[i];
        }
delete []x;
//x=NULL;
        }
 
void Array::Set(int x2,int y2)               //меняем значения элементов массива
{
     m=x2, n=y2;
     x = new  int*[m];      //выделяем память под переменные
    for(int i=1;i<=m;i++)
    x[i]= new int[n];
     cout<<"\nВведите элементы массива  ";
     for(int i=1;i<=m;i++)
    {
        cout<<endl;
        for (int j=1; j<=n; j++)
        {
        cout<<"\tx["<<i<<"]["<<j<<"]=";
        cin>>x[i][j];
        }
    }
}
void Run(Array&a)         //функция друг; решает поставленную задачу
{
    int summ=0;
    int su=0;
    cout<<endl;
    for (int i=1;i<=a.m;i++)
    {
        for(int j=1;j<=a.n;j++)
        {
            if ((a.x[i][j])<0)
            {
              for(j=1;j<=a.n;j++)             
                summ+=a.x[i][j];//находим сумму элементов в каждой нужной строке
                cout<<endl<<"Сумма элементов в "<<i<<" строке="<<summ;
                su+=summ;                   //общая сумма элементов
                summ=0;
            }
        }
    }
cout<<"\n\nОбщая сумма элементов "<<su;
}
 
void Array::Print(void)                                     //просмотр текущего значения массива 
{    
         cout<<"\nТекущие значения элементов массива:\n";
         for(int i=1;i<=m;i++)
      {
        cout<<endl;
        for (int j=1; j<=n; j++)
        cout<<"\tx["<<i<<"]["<<j<<"]="<<x[i][j];      
      }
}
 
/////////////////////////////////////////////////////////////////////////
 
 int main()
   {
   setlocale(LC_ALL, "Russian");
   char ch = 'y';
   int new_x=3, new_y=3;
   Array count1(new_x, new_y);      //создаем объект с помощью конструктора   
   Array *point;;                                        //объявляем указатель
   point=&count1;            //устанавливаем указатель  на объект
   count1.Print();
   
   Run(count1);
   
   cout<<"\n\nПродолжить? (y/n)...";
   cin>>ch;
        if (ch!='y'&&ch!='n')       
        {
         cout<<"Ошибка! Повторите ввод.";
         getch();
        }
   while (ch=='y')
   {
    cout<<"////////////////////////////////////////////////\n";
    cout<<"\nВведите количество строк массива  ";
    cin>>new_x;
    cout<<"\nВведите количество столбцов массива  ";
    cin>>new_y;
    point->Set(new_x, new_y);
    point->Print();
    Run(count1);
    cout<<"\n\nПродолжить? (y/n)";
    cin>>ch;
        if (ch!='y'&&ch!='n')                    
       {
        cout<<"Ошибка! Повторите ввод.";
        getch();
       }
   }
   return 0;
 }


Вернуться к обсуждению:
Не работает деструктор C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2011, 19:53
Готовые ответы и решения:

Не работает деструктор C++
Работаю в среде DEVc++ #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class...

не работает деструктор
это моя первая программа..я еще не особо разобралась..обьясните почему не работает деструктор и как...

Не работает деструктор
Простой вопрос, скорее всего связано с 2019 студией. Может кто сталкивался с таким? Всё...

Не работает деструктор
Выписал пример из самоучителя, но выяснилось что не работает деструктор. В чем проблема? #include...

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2011, 19:53
Помогаю со студенческими работами здесь

Не работает деструктор
#include &lt;iostream&gt; #include &lt;conio.h&gt; using std::cout; #pragma hdrstop #pragma argsused...

Почему не работает деструктор?
Собственно говоря, почему? #include &lt;iostream&gt; using namespace std; class Osoba{ public :...

Как работает деструктор?
1.Деструктор вызывается когда объект удаляется? ИЛИ 2. Сам деструктор удаляет объект? P.s....

Не работает деструктор и операторы
Задача, на создание класса «вектор в n-мерном пространстве». Я первоначально сделал эту задачу с...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru