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

Правильное удаление двумерного динамического массива ( нужен ли delete[] array ) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на языке "C" http://www.cyberforum.ru/cpp-beginners/thread405521.html
Пусть дана матрица А размером n x m, состоящая из вещественных чисел. Необходимо получить матрицу В размером n x m, каждый элемент b которой равен true, если сумма соседних с a элементов...
C++ Реализовать длинную арифметику Здравствуйте! Не подскажете как реализовывать длинную арифметику с числами? Т.е. нужно, чтобы выполнялись базовые арифметические операции над длинными числами и над дробными. Мне нужны источники... http://www.cyberforum.ru/cpp-beginners/thread405518.html
C++ Цифровое сортирование массива
Как реализовать "цифровое сортирование" массива на C++?
разобратся со структурами!!! C++
помогите пожалуйста, нужно в си темпы возрастания продуктивности работы работников в промышленности (1913г.=100%). Года | СССР| США| АНГЛИЯ| ФРАНЦИЯ 1928 | 120 | 137 | 94 |105 1940 | ...
C++ Поменять местами угловые элементы матрицы http://www.cyberforum.ru/cpp-beginners/thread405504.html
Есть матрица A 3x3 {1,2,3}, {4,5,6}, {7,8,9} нужно поменять местами угловые элементы матрицы. как реализовать не пойму, помогите.
C++ Вывести все целые числа, расположенные между данными числами, включая сами эти числа, в порядке их возрастания Вот собственно задачи, решение которых мне бы очень помогло, за решение каждой из них буду очень признателен: 1 - Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить... подробнее

Показать сообщение отдельно
Bers
Заблокирован
13.12.2011, 00:52
Что б не думалось, достаточно выполнить маленький эксперимент:

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
struct Test
{ 
    Test() { cout<< "Test: Создаюсь\n"; }
   ~Test() { cout<< "Test: удаляюсь\n"; }
    int a;
};
 
int main(int argc, char *argv[])
{
    const int m=3;
    Test** arr= new Test*[10]; //создали массив указателей
    
    for(int i = 0; i < m; i++)
    {
        arr[i] = new Test[m];//создали сами объекты
    }
    
    delete [] arr;  //вывод: сообщения о создании объектов. 
                    //       сообщения об удалении объектов отсутствуют
                    //Итого: утечка памяти. Объекты остались в памяти
                    //       А удалены были только 
                    //       указатели на массивы этих объектов
     
    return 0;
}
Добавлено через 4 минуты
Утечка памяти:

C++
1
2
3
for(i = m - 1; 0 <= i; i--)
* * * * * * * * delete [] arr[i]; //удалил массивы объектов, 
                                       //но забыл удалить массив указателей
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru