ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Лаба (работа с виртуальной памятью)
  #1  
Старый 16.04.2010, 21:37
dpbid
Новичок
Регистрация: 07.02.2010
Сообщений: 10
Провел на форуме:
581083

Репутация: 0
По умолчанию Лаба (работа с виртуальной памятью)

Задали следующую лаб. работу на с++.
Разработать программу, которая демонстрирует управление структурами данных типа «очередь», элементы которого занимают 12 кб. Операции, выполняемые над очередью:
1 проверить, очередь пуста/не пуста;
2 добавить элемент в хвост очереди;
3 удалить элемент из головы очереди;
4 просмотреть голову очереди;
5 продублировать голову очереди.
Воспользоваться механизмом управления разделами виртуальной
памятью.

Суть такова: есть односвязный список. выделил под него регион памяти
как правильно выделить на один элемент структуры 12кб памяти ?

Ниже выдержка из кода программы:

PHP код:
base_addr VirtualAlloc(NULLREGIONS_LIMIT*region_sizeMEM_RESERVEPAGE_NOACCESS);//base adres vcego rege0na
    
if (base_addr == NULL )
        
printf ("Error! VirtualAlloc reserve failed with error code of %ld\n"GetLastError ());

    
next_region = (Ochered *) base_addr;

    
VirtualAlloc((LPVOIDnext_regionregion_sizeMEM_COMMITPAGE_READWRITE);    // read/write access

    
top next_region;

    
regions++;
    
next_region += region_size
и
PHP код:
void Add_Item(int och)
{
    
LPVOID alloc_result;
    
Ochered *new_item;

    
alloc_result VirtualAlloc((LPVOIDnext_regionregion_sizeMEM_COMMITPAGE_READWRITE);    // read/write access
    
if (alloc_result == NULL )
        
printf("VirtualAlloc failed\n");
    else
    {
        
printf ("Allocating another region.\n");

        
new_item next_region;

        
regions++;
        
next_region += region_size;

        
cout << "Enter data: ";
        
cin >> new_item->data;

        if(
och == 0)
        {
            
top new_item;
            
top->next NULL;
        }
        else
        {
            
Ochered *node top;
            while(
node->next != NULL)
                
node node->next;
            
new_item->next node->next;
            
node->next new_item;
        }
        
och_size++;
    }

Сюда залил теоретический материал по лаб. работе и сам исходник программы, тот что у меня получился http://slil.ru/28969893

Последний раз редактировалось dpbid; 16.04.2010 в 21:39..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна программа! Ассемблер + работа с памятью! Jakeroid Болталка 6 25.02.2010 17:19
Удаленная Работа По Размещению Объявлений! Без Вложений! sakyra88 О Работе 1 06.02.2010 21:47
Работа с памятью C++Builder mind С/С++, C#, Delphi, .NET, Asm 3 25.05.2009 03:29
[Голосование] Самая лучшая работа в мире InfernoNet Болталка 15 06.03.2009 12:30



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ