C

StackAllocator类

class Qul::Platform::StackAllocator

为可能暂时需要额外内存进行缓存的功能提供简单的内存分配器。更多信息...

头文件 #include <platform/alloc.h>
自从Qt Quick Ultralite (平台) 1.5

公共类型

静态公共成员

int32_tavailable()

详细说明

StackAllocator可能提供的内存少于请求的量,而函数应该优雅地处理这种情况。

平台库需要将静态成员变量初始化为为StackAllocator保留的缓冲区。

  • m_buffer到缓冲区的开始。
  • m_top到当前顶部地址。此变量必须初始化为m_buffer。
  • m_size到缓冲区大小(以字节为单位)。

典型的StackAllocator初始化

#include <platform/alloc.h>

static char scratch_buffer[16 * 1024];
char *StackAllocator::m_buffer = scratch_buffer;
char *StackAllocator::m_top = StackAllocator::m_buffer;
int32_t StackAllocator::m_size = sizeof(scratch_buffer);

典型的StackAllocator使用

#include <platform/alloc.h>

Qul::Platform::StackAllocator::Allocation alloc(requestedSize);
if (requestedSize == alloc.size()) {
    doStuff(alloc.data());
} else {
    error();
}

alloc超出作用域时,通过析构函数释放内存。

另请参见Qul::Platform::StackAllocator::Allocation

成员函数说明

[静态] int32_t StackAllocator::available()

返回可用于分配的字节数。

如果StackAllocator的成员变量未初始化,则此函数返回零。

在某些Qt许可下可用。
了解更多信息。