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

Управление динамической памятью при работе с классами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Первый отрицательный и последний положительный элемент читаемый из файла http://www.cyberforum.ru/cpp-beginners/thread1213564.html
Из файла (имя файла вводится с клавиатуры) считывается массив целых чисел. Размер массива заранее неизвестен. Выведите в файл количество четных чисел, расположенных в массиве между первым и...
C++ Счетчик в Binsearch Поиск в отсортированной строке длины n буквы (char k) Помогите поставить счетчик, который будет показывать, сколько раз встречается эта буква в слове int BinSearch(string M, int n, char k) { ... http://www.cyberforum.ru/cpp-beginners/thread1213557.html
Как работает конструктор копирования? C++
ECM::ECM(const ECM &E) //êîíñòðóêòîð êîïèðîâàíèÿ { if (E.type) {type= new char ; strcpy(type, E.type);} else type=0; type=E.type;Ghz=E.Ghz;Memory=E.Memory;Gb=E.Gb; } Объясните как работает...
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9, не меньших 100 (Pascal -> C++) C++
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9 и находящихся в интервале левая граница которого равна 100 var i, v : integer; begin v:=99; for i := 1 to 10 do...
C++ Повторный ввод данных после ошибки http://www.cyberforum.ru/cpp-beginners/thread1213538.html
как после слов "ошибка!!!..." вернуться для повторного ввода оценки ученику?#include <iostream> #include <fstream> #include <string> using namespace std; int k, i, r; char u; string line;...
C++ Количество трёхзначных чисел, все цифры которых разные Есть задача Составить прорамму , которая считает количество натуральных чисел ,в которых все 3 цифры разные. Вот , что я написал int col = 0; for (int i = 100 ; i < 1000; i++) if (((i/100) !=... подробнее

Показать сообщение отдельно
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.06.2014, 03:30
Цитата Сообщение от Divergence Посмотреть сообщение
При вызове функции delete, вылезает ошибка.
Вот такой код вызывает ошибку?
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
class cTestPointer
{
public:
    int* masInt;
    float* masFloat;
 
    cTestPointer(void)
    {
        cout << "cTestPointer()" << endl;
        
        masInt = new int[64];
        masFloat = new float[128];
    }
 
    void DoSomething()
    {
        for(int i=0; i < 64; i++)
        {
            masInt[i] = i + 1;
        }
        for(int i=0; i < 128; i++)
        {
            masFloat[i] = i*3;
        }
        masFloat[0] = masInt[1];
    }
 
    ~cTestPointer()
    {
        cout << "~cTestPointer()" << endl;
 
        delete [] masInt;
        delete [] masFloat;
    }
 
};
 
int main(void)
{
    cTestPointer *tp;
    tp = new cTestPointer();
    tp->DoSomething();
    delete tp;  
    //tp->~cTestPointer();
    
    system("pause");
    return 0;
}
Нет тут ошибки, и вся, выделенная в коде через new, память (в том числе и под объектом cTestPointer) освобождается. Ошибка (двойного освобождения) будет, если оставить и delete tp, и tp->~cTestPointer().
Как эта, загадочная, ошибка у вас выглядит?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru