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

оператор delete[] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ boubble array http://www.cyberforum.ru/cpp-beginners/thread237939.html
Всем доброго времени суток!Даны пять чисел:5 18 9 1 4.Кто-нибудь может показать,как выглядит: а)Сортировка выбором массива этих чисел. б)Пузырьковая сортировка массива этих чисел? Спасибо...
C++ i++ и ++i В чем разница? Что обозначает ++i ? http://www.cyberforum.ru/cpp-beginners/thread237914.html
Графика C++
Хочу работать с графикой в С++. С каким приложением лучше работать OpenGL или с каким-то другим приложением?
C++ Параметр командной строки
Уважаемые форумчани, прошу подсказать, как будет выглядеть следующее в коде: Программа должна принимать один параметр командной строки - название файла, содержащего карту. Просто я никогда не...
C++ Проверка, пуст ли список, очистка списка, печать списка в направлении от верха к низу http://www.cyberforum.ru/cpp-beginners/thread237906.html
Доброго вечера. Пожалуйста помогите разобраться с заданием на структуры, и подскажите с чего здесь начинать? 1) Кольцевой двунаправленный список (добавление/удаление в произвольное место списка,...
C++ бинарные деревья Вершина двоичного дерева содержит указатель на строку и указатели на правое и левое поддеревья. Строки в дереве упорядочены по возрастанию. Написать функции включения строки и получения указателя на... подробнее

Показать сообщение отдельно
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7

оператор delete[] - C++

04.02.2011, 00:03. Просмотров 1715. Ответов 3
Метки (Все метки)

Применение delete (без []) к указателю на массив освобождает только нулевой элемент, а оставшиеся создают утечку памяти, но как объяснить этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
 
int main(){
    int *mas1=new int[5];      // создаём массив mas1 из 5 элементов
    cout<<"\nmas1= \n";
    for(int i=0; i<5; i++){
        mas1[i]=i;
        cout<<mas1[i]<<"  ";
    }
    delete mas1;                  // освобождаем нулевой элемент массива mas1
    cout<<"\n\nmas2= \n";
    int *mas2=new int[5];       // создаём другой массив из 5 элементов mas2
    for(int i=5; i<10; i++){
        mas2[i-5]=i;
        cout<<mas2[i-5]<<"  ";
    }
    cout<<"\n\nmas1= \n";      // все элементы первого массива перезаписаны. утечки нет..
    for(int i=0; i<5; i++){
        cout<<mas1[i]<<"  ";
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru