![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
SophiaFramework では、ヒープの確保、管理を専用のクラスで行います。
これらは MALLOC (SFXHelper::MemoryAllocate)、REALLOC (SFXHelper::MemoryReallocate)、FREE (SFXHelper::MemoryFree) 関数の代わりとなります。
| SFXHeap | ヒープを表すクラスです。 |
| SFXClusterHeap | ブロック アロケーションを行うヒープを表すクラスです。 |
| SFXBuffer | バッファを表すクラスです。 |
| SFXRingBuffer | リングバッファを表すクラスです。 |
SFXHeap クラスと SFXClusterHeap クラスは、ヒープ領域の管理を行うためのクラスです。2 つのクラスの違いはクラスタリングを行うか否かです。
定義
// SInt16 型の配列として使用するヒープ クラス SFXHeap<SInt16> heap; // クラスタリングをする場合は SFXClusterHeap<SInt16> heap; とする。 // SFXClusterHeap の使用法は SFXHeap と同じ
ヒープの確保
// MALLOC (MemoryAllocate) 関数と同様。256 バイトのヒープを確保
heap.Resize(sizeof(SInt16) * 128);
値の設定
heap[0] = 100; heap[1] = 200; heap[2] = 300; heap[3] = 400;
値の取得
SInt16 m = heap[2]; // m は 300 となる
大きさの取得
SInt16 n = heap.GetSize(); // n は 256 となる
大きさの変更
// REALLOC (MemoryReallocate) 関数と同様
heap.Resize(16);
ポインタの取得
// ヒープを指すポインタを取得。このポインタを用いて直接書き込みができる
SInt16Ptr p = static_cast<SInt16Ptr>(heap);
ヒープ使用後の処理
// 何もする必要がない // 明示的に解放するには // heap.Free(); FREE (MemoryFree) 関数と同じ
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|