#ifndef __MEMORY_H #define __MEMORY_H #include #include #include typedef struct { int count; int size; } MemoryHeader; /******************************************************************************* ** ItemSize *******************************************************************************/ inline int ItemSize(void* memory) { return memory ? ((MemoryHeader*)memory)[-1].size : 0; } /******************************************************************************* ** NumberOf *******************************************************************************/ inline int NumberOf(void* memory) { return memory ? ((MemoryHeader*)memory)[-1].count : 0; } /******************************************************************************* ** MemorySize *******************************************************************************/ inline int MemorySize(void* memory) { return ItemSize(memory) * NumberOf(memory); } void* MemoryRealloc(void*, int, int); void* MemoryAlloc(int count, int size); void MemoryFree(void*); void MemoryWrite(void*, FILE*); void MemoryWrite(void*, int, int, FILE*); void* MemoryRead(FILE*); #endif