Виртуальная Память И Его Реализация.

  • Автор темы Автор темы Vunderkind
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
V

Vunderkind

Дано задание реализации механизма виртуальной памяти на С, но у меня не получается даже начать. Дело в том что до реализации виртуалной памяти надо выделить память для основной памяти используя malloc, и основная память должно состоять из 100 блоков, а каждый блок из 128 байта. Как это реализовать понятии не имею. Не судите строго если я что-то не прав. написал, читайте задание(на англ.) прикрепленао к этой теме. Если можно, поэтапно объясните что надо делать в этом задании!
 

Вложения

Дело в том что до реализации виртуалной памяти надо выделить память для основной памяти используя malloc, и основная память должно состоять из 100 блоков, а каждый блок из 128 байта. Как это реализовать понятии не имею.

Здесь можно прочитать про функции выделения и освобождения памяти , и .

В твоем случае это будет выглядеть примерно так:
C++:
#include<cstdlib>

void main()
{
const size_t sizeBlock = 128;
const size_t countBlock = 100;

char* masBlock[countBlock];

// Выделение памяти.
for(size_t i = 0; i < countBlock; i++)
{
masBlock[i] = (char *)malloc(sizeBlock);
}

// Освобождение памяти.
for (size_t i = 0; i < countBlock; i++)
{
free(masBlock[i]);
}
}

Нужно только проверить как подключается заголовочный файл stdlib.h в твоем компиляторе.
 
Огромное вам спасибо! У меня возник еще один вопрос, а как достучатся к определенной памяти определенного блока? Например: по задании надо взять адрес 45-го байта 13-го блока, умею взять адрес блока, а как взять адрес байта(наверное это невозм.) ?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!