Задали следующую лаб. работу на с++. Разработать программу, которая демонстрирует управление структурами данных типа «очередь», элементы которого занимают 12 кб. Операции, выполняемые над очередью: 1 проверить, очередь пуста/не пуста; 2 добавить элемент в хвост очереди; 3 удалить элемент из головы очереди; 4 просмотреть голову очереди; 5 продублировать голову очереди. Воспользоваться механизмом управления разделами виртуальной памятью. Суть такова: есть односвязный список. выделил под него регион памяти как правильно выделить на один элемент структуры 12кб памяти ? Ниже выдержка из кода программы: PHP: base_addr = VirtualAlloc(NULL, REGIONS_LIMIT*region_size, MEM_RESERVE, PAGE_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((LPVOID) next_region, region_size, MEM_COMMIT, PAGE_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((LPVOID) next_region, region_size, MEM_COMMIT, PAGE_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