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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

Создание простого распределителя памяти - C++

09.06.2013, 10:34. Просмотров 329. Ответов 1
Метки нет (Все метки)

Вот мой код:
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
#include<iostream>
#include<cstdlib>
#define allocator Allocator
 
template<class T> class Allocator {
public:
    T* allocate(int n);
    void deallocate(T* p, int n);
 
    void construct(T* p, const T& v);
    void destroy(T* p);
};
 
template<class T> 
T* Allocator<T>::allocate(int n)
{
    return T* (malloc(n*sizeof(T)));
}
 
template<class T>
void Allocator<T>::deallocate(T* p, int n)
{
    free(p);
}
 
template<class T>
void Allocator<T>::construct(T* p, const T& v)
{
    p=T*(malloc(sizeof(T)));
    *p=v;
}
 
template<class T>
void Allocator<T>::destroy(T* p)
{
    free(p);
}
 
int main()
{
    allocator<int> alloc;
    int* p=alloc.allocate(5);
    return 0;
}
При компиляции выдаётся ошибка: "error C2275: T: недопустимое использование этого типа в качестве выражения". Подскажите, в чём проблема, и как её можно исправить.
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 10:34     Создание простого распределителя памяти
Посмотрите здесь:

C++ Создание простого рисунка c while.
Создание указателя на объект и выделение памяти C++
Метод простого обмена [C++] C++
C++ Создание менеджера памяти с++
Создание объекта в области памяти C++
C++ Создание объекта класса, чтобы он постоянно висел в памяти, и чтобы память выделялась один раз
Создание исключения при динамическом выделении памяти C++
Создание объекта в области памяти C++
Создание простого приложения. Что нужно знать? C++
Поиск простого числа C++
C++ Создание простого окна для программы
C++ Создание объектов в заранее выделенной памяти

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2451 / 1623 / 238
Регистрация: 24.11.2012
Сообщений: 3,993
09.06.2013, 10:42     Создание простого распределителя памяти #2
Строка 18 и все аналогичные:
Цитата Сообщение от PG94 Посмотреть сообщение
return T* (malloc(n*sizeof(T)));
int * (void*) - инт умножить на void*. Используйте какой-нибудь static_cast<T*>(malloc(....));
Yandex
Объявления
09.06.2013, 10:42     Создание простого распределителя памяти
Ответ Создать тему
Опции темы

Текущее время: 09:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru