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

C++, менеджэр памяти. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, которая образует матрицу (n × n) http://www.cyberforum.ru/cpp-beginners/thread247119.html
Составить программу, которая образует матрицу (n × n) случайных вещественных чисел, находит наибольшее значение среди элементов заштрихованной части матрицы и наименьшее - в незаштрихований и выводит на экран матрицу и найденные числа:
C++ Создать квадратную матрицу Составить и отладить программу, которая создает (в памяти ЭВМ) квадратную матрицу порядка n (n задавать константой). http://www.cyberforum.ru/cpp-beginners/thread247114.html
C++ подскажите пожалуйста как создать клас
Здравствуйте у меня собственно такой вопрос как в С++ создать клас а потом его вызвать.роботам с Визуал Студия У меня просто такое задание создать класс создать в нем метод ето всьо в файле .срр потом создать файл .h и с помощью него вызвать класс в самом классе написать любой текст .Я по немаю что задание легкое но просто у нас преподаватель комик он к нам на лекции приходит анекдоты травить и...
Комбинированные структуры данных C++
Напишите программу, которая начисляет месячную заработную плату на основании следующих данных: фамилия, имя, отчество работника,табельный номер, общее число отработанных часов, в том числе - сверхурочно, почасовой тариф, количество иждивенцев. Сверхурочное рабочее время оплачивается в полуторном размере. Необходимо произвести отчисления в пенсионный фонд в размере 1% от зарплаты и удержать...
C++ Указатели http://www.cyberforum.ru/cpp-beginners/thread247081.html
Всем привет, подскажите пожалуйста, есть ли хоть какая-нибудь литература по указателям в С++? А то ну совсем я их не понимаю. Вот пример class Tester { public: Tester() {} virtual void method() { cout << "123456789\n"; } Tester& operator^(const Tester& src) {
C++ max min Всем доброго времени суток. нужна ваша помощь ув. программеры. Дана целочисленная матрица размера 6*9. Определить функцию поиска значения и местоположения максимального и минимального элементов матрицы и передачи их в вызывающую программу. Помогите решить задачу с помощью указателей. подробнее

Показать сообщение отдельно
GAME
 Аватар для GAME
22 / 22 / 3
Регистрация: 31.10.2009
Сообщений: 199
23.02.2011, 02:25     C++, менеджэр памяти.
Здравствуйте форумчане =)

Есть такое задание:
Написать менеджер памяти. Дано 10Кб памяти(оперативной так сказать), нужно написать класс для работы с ней, т.е. функции выделения памяти, записи, чтения, де фрагментации, дампа памяти.
C++
1
2
3
4
5
6
int AllocMemory(int size);
void FreeMemory(int MemoryHandle);
bool WriteMemory(int MemoryHandle, int Offset, int Size, void *Data);
bool ReadMemory(int MemoryHandle, int Offset, int Size, void *Data);
void DumpMemory(void);
void Defragmentation();
В общем суть такая, функция AllocMemory возвращает описатель выделенной памяти или 0 если не удалось выделить память, но так как при де фрагментации блоки смещаются внутри класса у нас будет ещё один описатель(внутренний), который будет указывать реальное положение блока памяти в массиве.
Хотелось-бы разместить эти указатели в тех-же 10 килобайтах , как участок зарезервированной памяти.
Возникает вопрос делать его фиксированного размера (-если да то какого) или переменного ?
Может быть у кого-то есть какие - нибудь идеи по этому поводу ...
Допустим эти описатели помещать в конец массива а сами блоки записывать с начала.
И как лучше будет с помощью классов реализовать(саму структуру классов, с кодом я сам разберусь)

Пока решил делать в два класс - собственно главный класс

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class MemoryManager
{
    BYTE *memory;
    MemoryBlock *BlockList;
    int *MemorySize;
private:
    /* какие-нибудь фун-ии */
public:
    MemoryManager();
    ~MemoryManager();
    int AllocMemory(int size);
    void FreeMemory(int MemoryHandle);
    bool WriteMemory(int MemoryHandle, int Offset, int Size, void *Data);
    bool ReadMemory(int MemoryHandle, int Offset, int Size, void *Data);
    void DumpMemory(void);
};
и класс блока в памяти
C++
1
2
3
4
5
6
7
8
9
10
11
class MemoryBlock
{
    int externalHandle;
    int internalHandle;
    int blockSize;
public:
    MemoryBlock(int);
    ~MemoryBlock();
    void MoveBlock(int newInternalHandle);
    /* всякие фун-ии */
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru