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

Работа с allocator (управление памятью) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Исчезает всё нарисованное на gdi+ http://www.cyberforum.ru/cpp-beginners/thread454769.html
Доброго времени суток! Пишу подобие своего gui на gdi+.. Всё бы хорошо, но через некоторое время (около минуты), исчезает всё нарисованное.. и никакой Invalidate не помогает(( Что же делать?? Может где-то я не освобождаю ресурсы?? другого объяснения найти не могу( После каждого движения мышкой проверяю положения курсора, и если он попал в кнопку, то отрисовываю картинку с помощью...
C++ Заполнение списка с возможностью перестановки его строк Как написать программу которая string загоняет в список, чтоб потом можно было переставлять строки и.т.п? http://www.cyberforum.ru/cpp-beginners/thread454749.html
C++ Класс с динамическим массивом
доброго времени суток! помогите мне немножко: создать клас vector для сохранения массиву, розмеры от 10 до 10к, память виделите динамчно. забаспечте индексацыю елементов.
Найти объединение и симметрическая разность C++
Пожалуйста, помогите написать программу, находящую объединение и симметрическую разность элементов двух множеств
C++ Создать структуру Student http://www.cyberforum.ru/cpp-beginners/thread454733.html
Не могу никак понять тему структуры, а тут сразу ещё и список, помогите написать код ка С++ : Создать структуру с именем Student с полями: фамилия, имя, номер группы, успеваемость (массив из пяти элементов). Сформировать двусвязный список. Реализовать просмотр списка в прямом и обратном порядке, а также Удаление всех студентов заданной группы. Спасибо.
C++ Создать простое консольное приложение Задание 1 Создать простое консольное приложение 2 В созданном консольном приложении написать и отладить программу в соответствии с вариантом. Вариант выбирается по списку в учебном журнале Задана матрица чисел: а Вычислить сумму элементов, образующих символ Есть пример #include "stdafx.h" #include <stdlib.h> подробнее

Показать сообщение отдельно
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
29.02.2012, 00:28     Работа с allocator (управление памятью)
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
#include <iostream>
#define DBG do { std::cout << __FUNCTION__ << std::endl; } while(0)
 
typedef unsigned char BYTE;
 
template <class T>
class allocator {
public: 
        T* allocate(int size) {
                DBG;
                if (size <= 0) return NULL; 
                return (T*) new BYTE[size * sizeof(T)];
        }
 
        void deallocate(T *p, int n) {
                DBG;
                delete [] (BYTE*)p;
        }
 
        void construct(T *p, T const & val) {
                DBG;
                new (p) T(val);
        }
        void destroy(T *p) {
                DBG;
                p->~T();
        }
};
 
class A {
public:
        A(int a) : m_a(a) { std::cout << __FUNCTION__ << std::endl; }
        ~A() { DBG; }
        A(const A& a) { 
                DBG;
                m_a = a.m_a; 
        }
        void setA(int a) { m_a = a; }
        int getA() { return m_a; }
private:
        int m_a;
};
 
int main() {
        allocator<A> alloc;
        unsigned i;
        A* arr[5], a(-1), *first = alloc.allocate(5);
 
        for (i=0 ; i<5 ; ++i) { arr[i] = &first[i]; }
        
        for (i=0;i<5;++i) {
            a.setA(i);
            alloc.construct(arr[i], a);
        }
        for (i=0;i<5;++i) {
            std::cout << arr[i]->getA() << std::endl;
            alloc.destroy(arr[i]);
        }
        alloc.deallocate(first, 5);       
}
Добавлено через 1 минуту
Цитата Сообщение от HardMorg Посмотреть сообщение
прокоментируйте вот это строчку A* a = new (data)A();
это placement new - не на гугл же мне ссылку давать
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru