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

Тема в разделе "Общие вопросы по С и С++", создана пользователем Vunderkind, 22 мар 2012.

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  1. Vunderkind

    Vunderkind Active Member

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

    Вложения:

    • Vitual_mem.pdf
      Размер файла:
      214,3 КБ
      Просмотров:
      11
  2. Гость

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

    В твоем случае это будет выглядеть примерно так:
    Код (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 в твоем компиляторе.
     
  3. Vunderkind

    Vunderkind Active Member

    Регистрация:
    26 окт 2010
    Сообщения:
    27
    Симпатии:
    0
    Огромное вам спасибо!
     
  4. Vunderkind

    Vunderkind Active Member

    Регистрация:
    26 окт 2010
    Сообщения:
    27
    Симпатии:
    0
    Огромное вам спасибо! У меня возник еще один вопрос, а как достучатся к определенной памяти определенного блока? Например: по задании надо взять адрес 45-го байта 13-го блока, умею взять адрес блока, а как взять адрес байта(наверное это невозм.) ?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей