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

утечка памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пример http://www.cyberforum.ru/cpp-beginners/thread802154.html
решить на С++ Builder
C++ Посоветуйте ресурс с решенными задачами по C++ народ всем привет не могли бы вы мне подсказать есть ли какие то ресурсы чтобы там были задачи(для новичков,среднячков и сильнячков:) ) на C++ с "элигантными" решениями? http://www.cyberforum.ru/cpp-beginners/thread802131.html
C++ Массив. Класс с именем NOTE содержит следующие поля:
Помогите написать массив!!! Пожалуйста с коментариями, чтоб смог понять!! Описать класс, объявить массив из 10 объектов. Написать программу в которой обеспечить ввод данных в массив с клавиатуры, вывод исходных данных на экран, вывод на экран данных, соответствующих условию поиска. Класс с именем NOTE содержит следующие поля: • фамилия и инициалы; • номер телефона; • дата рождения...
C++ Из чисел 1, 1+1/2, 1+ 1/2 + 1/3, … вывести те, которые меньше a
Дано вещественное число a. Из чисел 1, 1+1/2, 1+ 1/2 + 1/3, … вывести те, которые меньше a. помогите пожалуйста, нужен код с циклом
C++ Найти число, получаемое при прочтении его цифр справа налево http://www.cyberforum.ru/cpp-beginners/thread802082.html
Дано натуральное число.Найти число, получаемое при прочтении его цифр справа налево. нужен код с циклом
C++ переделать конструктор с парамерами Array(int size) { //конструктор с параметрами. Позволяет создать массив заданного размера maxSize = size; //переданное значение размера массива установим как максимальный размер count = 0; //элементов нет pArr = new long; //выделяем память Clear(); //нулим элементы Array() { //конструктор по умолчанию. Создаем массив размера 10. maxSize =... подробнее

Показать сообщение отдельно
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
06.03.2013, 18:33  [ТС]     утечка памяти
Цитата Сообщение от Croessmah Посмотреть сообщение
House* Obj = new House[n];
* * while(1){
* * * * if(for_menu == false){
* * * * * * delete [] Obj;
* * * * * * cout<<"Введiть кiлькiсть квартир: "; cin>>n;
* * * * * * House* Obj = new House[n];//Вот тут без House - Obj=new House[n];
//Иначе получается объявление локальной переменной с именем Obj и её инициализация.
//Хотя, смотря что Вы хотели этим сказать
* * * * }
Если без этого значит пользователь не сможет ввести больше квартир чем он ввел с первого раза! А мне нужно чтобы пользователь мог менять размер массива! Алгоритм такой: высвобождаем старую память, создаем новый массив для хранения n квартир. Как это сделать?

Добавлено через 5 минут
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
int main()
{
    setlocale(0,"");
    int n; 
    bool B = true, for_menu = true;
    cout<<"Введiть кiлькiсть квартир: "; cin>>n;
    House* Obj = new House[n];
    while(1){
        if(for_menu == false){ //здесь повино все происходить, удаление памяти и создание нового массива. 
            delete [] Obj;   //Но как уже сказалось это локальная переменная, поэтому надо что-то другое придумать!
            cout<<"Введiть кiлькiсть квартир: "; cin>>n;
            House* Obj = new House[n];
        }
 
    //какие-то действия
 
    cout<<"Продовжити? y/n: "; 
    char an; 
    cin>>an;
    if(an == 'y'){ 
        cout<<"Продовжити зi старими даними? y/n: ";
        cin>>an;
        if(an == 'y') {for_menu = true; continue;} //Если да, то повторяем цикл и for_menu = true
        else
            for_menu = false;
    } 
    else
        break;
    }
    delete [] Obj;
    system("pause>0");
    return 0;
}
 
Текущее время: 07:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru