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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Учебник Структуры и алгоритмы обработки данных http://www.cyberforum.ru/cpp-beginners/thread348926.html
Добрый день... Посоветуйте пожалуйста какой нибудь электронный учебник по структурам и аглоритмам обработки данных где все понятным языком написанно... вот пример Полный справочник Шилдта по С С++
C++ Добавить символ '//' в строку Ребят, необходимо добавить символ // в массив char. Когда делаю так: const char сh = {"http://www.mail.ru" "http://www.yandex.ru" }; то компилятор, как вы понимаете, воспринимает это как комментарий и выдает ошибку. http://www.cyberforum.ru/cpp-beginners/thread348839.html
Переход на Visual C++ c Delphi C++
Здрасте всем!! В общем начинал я с турбо паскаля, потом перешел на Delphi в общем писал я для себя некоторые програмки и какие то мелкие базки данных на заказ конторкам очень редко. Теперь решил поиграться с портами USB СОМ и понял что там все через одно место. Надо изучать Visual C. В общем поставил я Visual C++ Pro. Скачал учебники разные. Там даже не совпадает создание проэктов. И...
C++ Увеличить размеры шрифтов в VS 6.0
У меня под 7кой x64 вот такая картинка в VS 6.0 в настройках шрифтов (см. прикреплённый файл), а лабораторные по с++ нужно сдавать с условием что они будут запускаться в VS 6.0. Что можно сделать чтобы выбор размера шрифтов под 7кой в этой версии VS работал корректно? Может кто пользуется этой версией VS в наше время и подскажет мне.
C++ Пользуясь рекуррентной формулой.... http://www.cyberforum.ru/cpp-beginners/thread348809.html
значения в списках рандом Добавлено через 21 минуту я в этом деле новичок слабо шарю, да и по специальности потом не особо надо будет. кто сможет напишите проги. P.S. списки отдельно Прикрепляйте файлы к сообщениям. Ну и вообще правила почитайте...
C++ задачка для зачета Движение закрашенного круга по синусоиде из левого нижнего угла экрана в правый верхний угол. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
07.09.2011, 22:13     Освобождение памяти, занятой вектором
Цитата Сообщение от talis Посмотреть сообщение
-=ЮрА=-, а если после этого нужно изменить количество SimpleClass'ов? realloc? а как же деструкторы в случае уменьшения количества экземпляров или конструкторы в случае увеличения?
Вот доработал свой наглядный пример

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
53
54
55
56
57
58
59
60
61
62
63
64
#include <windows.h>
#include <stdio.h>
 
 
class SimpleClass
{
private :
    unsigned long num;
    char sMSG[256];
    bool bCreated;
public:
    SimpleClass(int i)
    {
        bCreated = true;
        sprintf(sMSG,"class %u - I'm created",1 + (num = i));
    }
    ~SimpleClass()
    {
        sprintf(sMSG,"class %u - I'm destroyed",1 + num);
    }
    void CheckStatus()
    {
        printf("%s\r\n",sMSG);
    }
};
 
 
int main()
{
    SimpleClass * ptr = (SimpleClass *)malloc(sizeof(SimpleClass));
    printf("Enter num of examles : ");
    unsigned long i,n;scanf("%u",&n);
    ptr = (SimpleClass *)realloc((void *)ptr,n*sizeof(SimpleClass));
    for(i = 0;i < n; i++)
    {
        ptr[i] = SimpleClass(i);
        ptr[i].CheckStatus();
    }
    printf("Enter new num examles: ");
    unsigned long m;scanf("%u",&m);
    
    if(m < n)
    {
        for(i = n - 1;m <= i; i--)
        {
            ptr[i].~SimpleClass();//Дструктор ничего не делает
            ptr[i].CheckStatus();//поэтому вывожу CheckStatus,
                        //в реалии ~ удаляят всё, поєтому потом уже ничего не вызвать
                        //всё сделал чисто в ознакомительных целях
        }
        ptr = (SimpleClass *)realloc((void *)ptr,m*sizeof(SimpleClass));
    }
    else
    {
        ptr = (SimpleClass *)realloc((void *)ptr,m*sizeof(SimpleClass));
        for(i = n - 1;i < m; i++)
        {
            ptr[i] = SimpleClass(i);
            ptr[i].CheckStatus();
        }
    }
    system("pause");
    return 0;
}
Миниатюры
Освобождение памяти, занятой вектором  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru