splitheap.h

来自「hoard内存管理器」· C头文件 代码 · 共 29 行

H
29
字号
#ifndef _SPLITHEAP_H_#define _SPLITHEAP_H_template <class SuperHeap>class SplitHeap : public SuperHeap {public:  inline void * malloc (const size_t sz)  {    void * ptr = SuperHeap::malloc (sz);    if (ptr != NULL) {		markInUse (ptr);		size_t oldSize = getSize(ptr);		if (oldSize <= sz + sizeof(double)) {			return ptr;		} else {			void * splitPiece = split (ptr, sz);			if (splitPiece != NULL) {				// printf ("split %d into %d and %d\n", oldSize, getSize(ptr), getSize(splitPiece));				markFree (splitPiece);				SuperHeap::free (splitPiece);			}		}	}    return ptr;  }};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?