Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Matanoid
10 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 40
#1

Ошибка при освобождении памяти - C++

05.10.2016, 11:59. Просмотров 118. Ответов 2
Метки нет (Все метки)

Добрый День! Написал простую программу для понимания сути. Проблема в том, что код, который прилагается выдает ошибку. Но если убрать строчки
C++
1
2
3
4
One() {
        a = 1;
    }
    ~One() {};
то все работает. Помогите, пожалуйста, понять проблему!
Сам код:
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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
#include <stdio.h>
#include <direct.h>
 
 
using namespace std;
 
class One
{
private:
    int a;
public:
 
    One() {
        a = 1;
    }
    ~One() {};
};
 
 
class Two {
 
private:
    One * one;
 
public:
    Two() {
        one = new One[2];
        One *one;
        cout << "constructor\n";
    }
 
    ~Two() {
        delete one;
        cout << "destructor\n";
        system("pause");
    }
};
 
void main() {
    
    Two two;
 
    cout << "FINISH : " << "\n";    
}

http://www.cyberforum.ru/cpp-beginners/thread379731.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2016, 11:59
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка при освобождении памяти (C++):

Ошибка при освобождении памяти
Здравствуйте! Пишу на MS Visual C++ 2010, windows 7. При вызове функции...

Ошибка при освобождении памяти
Здравствуйте, программа завершает работу в этом коде #include &lt;iostream&gt;...

Ошибка при освобождении памяти
Все идет замечательно, но вот когда происходит удаление массива программа...

Ошибка при освобождении памяти
#include &lt;iostream&gt; using namespace std; template&lt;class T&gt; class pvector...

Ошибка при освобождении памяти
Задача: Из стандартного входного потока вводятся сроки. Признаком завершения...

2
Croessmah
++Ͻ
14147 / 8072 / 1512
Регистрация: 27.09.2012
Сообщений: 19,907
Записей в блоге: 3
Завершенные тесты: 1
05.10.2016, 12:02 #2
C++
1
2
//delete one;
delete [] one;
0
Volchonok34
7 / 7 / 13
Регистрация: 04.10.2016
Сообщений: 52
Завершенные тесты: 2
05.10.2016, 12:06 #3
delete используется для очиски памяти выделенной для одиночного объекта, а delete [] для массива объектов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2016, 12:06
Привет! Вот еще темы с решениями:

Ошибка при освобождении памяти
Здравствуйте. Знаю, что тема уже много раз поднималась в самых разнообразных...

Ошибка при освобождении памяти
#include &lt;iostream&gt; using namespace std; #include &lt;stdlib.h&gt; #include...

Ошибка при освобождении памяти (delete)
Здравствуйте! Есть массив lines, созданный вот так : int *line = new int ; ...

Ошибка при освобождении памяти массива string
Вот тут вот при delete возникает ошибка, и пишет &quot;The program ' Array...


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

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

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