The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Trash Stacks

Trash Stacks — Поддержка стека неиспользуемых распределённых частей памяти.

Краткое описание


#include <glib.h>


            GTrashStack;
void        g_trash_stack_push              (GTrashStack **stack_p,
                                             gpointer data_p);
gpointer    g_trash_stack_pop               (GTrashStack **stack_p);
gpointer    g_trash_stack_peek              (GTrashStack **stack_p);
guint       g_trash_stack_height            (GTrashStack **stack_p);

Описание

GTrashStack это эффективный способ сохранить стек неиспользуемых распределённых участков памяти. Каждый участок памяти должен быть достаточно большим для вмещения gpointer. Это позволяет поддержку стека без дополнительного пространства, так как стек указателей может быть сохранён внутри участка памяти.

Нет функции для создания GTrashStack. NULL GTrashStack* это совершенно правильный пустой стек.

Детали

GTrashStack

typedef struct {
  GTrashStack *next;
} GTrashStack;

Каждый участок памяти, который помещён в стек, приводится к GTrashStack*.

GTrashStack *next; указатель на предыдущий элемент стека, сохраняется в первом sizeof (gpointer) байте элемента.

g_trash_stack_push ()

void        g_trash_stack_push              (GTrashStack **stack_p,
                                             gpointer data_p);

Помещает участок памяти в GTrashStack.

stack_p : указатель на GTrashStack.
data_p : участок памяти помещаемый в стек.

g_trash_stack_pop ()

gpointer    g_trash_stack_pop               (GTrashStack **stack_p);

Выталкивает участок памяти из GTrashStack.

stack_p : указатель на GTrashStack.
Возвращает : верхний элемент стека.

g_trash_stack_peek ()

gpointer    g_trash_stack_peek              (GTrashStack **stack_p);

Возвращает верхний элемент GTrashStack, который может быть NULL.

stack_p : указатель на GTrashStack.
Возвращает : верхний элемент стека.

g_trash_stack_height ()

guint       g_trash_stack_height            (GTrashStack **stack_p);

Возвращает высоту GTrashStack. Помните что выполнение этой функции имеет сложность O(N), где N означает количество элементов стека.

stack_p : указатель на GTrashStack.
Возвращает : высота стека.



Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру