SophiaFramework UNIVERSE 5.3 |
ヒープクラスは、BREW ヘルパー関数である MALLOC 関数、REALLOC 関数、FREE 関数の機能をカプセル化したクラスです。
SFXHeap とブロックアロケーションをサポートする SFXClusterHeap があります。
これらは MALLOC(SFXHelper::malloc) 関数、REALLOC(SFXHelper::realloc) 関数、FREE(SFXHelper::free) 関数の代わりとなります。
参照: BREW API MALLOC | BREW API REALLOC | BREW API FREE
例 14.1. ヒープの定義
// SInt16 型の配列として定義されたヒープ SFXHeap<SInt16> heap; // ブロックアロケーションを使う場合は SFXClusterHeap<SInt16> heap; とする // SFXClusterHeap の使用法は SFXHeap と同じ
例 14.2. ヒープの確保
heap.Resize(sizeof(SInt16) * 128); // BREW ヘルパー関数の MALLOC 関数を呼び出して 256 バイトのヒープを割り当てるのと同等
MALLOC 関数 | |
---|---|
SophiaFramework UNIVERSE では、BREW ヘルパー関数の MALLOC 関数の代わりに BREW シミュレータ上でのメモリ追跡が可能な MemoryAllocate マクロを使います。 参照: BREW API MALLOC |
例 14.6. ヒープサイズの変更
heap.Resize(16); // BREW ヘルパー関数の REALLOC 関数を呼び出して 16 バイトのヒープを再割り当てするのと同等
REALLOC 関数 | |
---|---|
SophiaFramework UNIVERSE では、BREW ヘルパー関数の REALLOC 関数の代わりに BREW シミュレータ上でのメモリ追跡が可能な MemoryReallocate マクロを使います。 参照: BREW API REALLOC |
例 14.7. ヒープポインタの取得
// ヒープを指すポインタを取得し、このポインタを使用して書き込む
SInt16Ptr p = static_cast<SInt16Ptr>(heap.GetHeap());
例 14.8. ヒープ使用後の処理
// 何もする必要がない // 明示的に解放するには heap.Free(); // BREW ヘルパー関数の FREE 関数を呼び出してヒープを解放するのと同等
FREE 関数 | |
---|---|
SophiaFramework UNIVERSE では、BREW ヘルパー関数の FREE 関数の代わりに BREW シミュレータ上でのメモリ追跡が可能な MemoryFree マクロを使います。 参照: BREW API FREE |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |