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

Деструктор, освобождение памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ сапёр http://www.cyberforum.ru/cpp-beginners/thread135681.html
здравствуйте извините, если повторяюсь (видела, что подобная тема была, причём не одна, но не нашла там того, что надо), но мне срочно нужна помощь надвигается конец семестра, нам дали задачу...
C++ Сортировка справочника по фамилиям как сделать следующее: есть *.txt файл в котором записан примитивный телефонный справочник (в каждой строке записана фамилия, имя, город и номер телефона). Нужно чтобы программа сортировала этот... http://www.cyberforum.ru/cpp-beginners/thread135678.html
элементы массива C++
надо чтоб элемент массива MAS был равен 5, а остальные равны 1, в чём ошибка? { int row,column; std::cout << "vvedite stroki: "; std::cin >> row; std::cout << "vvedite stolbci: "; std::cin...
C++ Редактирование строк в файлах
Доброго вечера! Помогите пожалуйста написать программу, со строками, и как можно примитивнее (Предпочтительней на Си, с элементами С++). Свои наброски почти на нуле, поэтому не выкладываю. ...
C++ Счетчик в сортировке http://www.cyberforum.ru/cpp-beginners/thread135633.html
Помогите исправить ошибки: template <class type>float sortV(type *b,long n) { type a,i,j; float c; for (i=0;i<n;i++) for(j=i+1;j<n;j++) { if (b >b) { c++;
C++ Гляньте какая у меня ошибка Гляньте пожалуйста какая у меня ошибка#include <stdio.h> #include <conio.h> #include <stdlib.h> void main() { clrscr(); FILE *fp; int i; typedef struct подробнее

Показать сообщение отдельно
_Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200

Деструктор, освобождение памяти - C++

26.05.2010, 03:07. Просмотров 619. Ответов 0
Метки (Все метки)

Привет всем, пишу класс "вещественная матрица", написал деструктор и программа стала вылетать после его выполнения( Помогите разобраться где ошибка, вот код:
Matrica.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
class Matrica{
 
private:
 
    int row;
    int col;
 
    double **arr;
 
public:
 
    Matrica(int p_row, int p_col);
    ~Matrica();
 
    void Show();
 
};
Matrica.cpp
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
#include "Matrica.h"
#include <time.h>
 
 
Matrica::Matrica(int p_row, int p_col){
    row = p_row; 
    col = p_col;
 
    arr = new double* [row];
    for(int i = 0; i < row; ++i){
        arr[i] = new double[col];
    }
 
    srand((unsigned)time( NULL ));
 
    for(int i = 0; i < row; ++i){
        for(int j = 0; j < col; j++){
            arr[i][j] = rand()%10;
        }   
    }
    
}
 
Matrica::~Matrica(){
    for(int i = 0; i < row; ++i){
        delete [] arr[i];
        cout << "удалена строка" << i << endl;
    }
    delete []arr;
    cout << "Удален массив указателей на одномерные массивы" << endl;
}
 
void Matrica::Show(){
    for(int i = 0; i < row; ++i){
        cout << endl;
        for(int j = 0; j < col; j++){
            cout << arr[i][j] << " ";
        }   
    }
    cout << endl;
}
Main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "Matrica.h"
#include <windows.h>
#include <conio.h>
#include <time.h>
 
 
 
int main(){
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Программа запущена" << endl;
 
    Matrica arr(5, 3);
    arr.Show();
    arr.~Matrica();
    //arr.Show();
 
    
    _getch();
    return 0;
}
Добавлено через 7 минут
Понял) при выходе из программы деструкор заново срабатывает и пытается очистить память снова, только не понятно что в этом такого, зачем ругаться то так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru