分配和释放可变的内存
Handle NewHandle(Size byteCount);
Handle NewHandleClear(Size byteCount);
Handle NewEmptyHandle(void);
Handle NewEmptyHandleSys(void);
void DisposeHandle(Handle h);
改变固定和可变大小内存
Size GetPtrSize(Ptr p);
void SetPtrSize(Ptr p,Size newSize);
Size GetHandleSize(Handle h);
void SetHandleSize(Handle h,Size newSize);
设置可变内存的属性
void HLock(Handle h);
void HUnlock(Handle h);
void HPurge(Handle h);
void HNoPurge(Handle h);
SInt8 HGetState(Handle h);
void HSetState(Handle h,SInt8 flags);
管理可变内存
void EmptyHandle(Handle h);
void ReallocateHandle(Handle h,Size byteCount);
Handle RecoverHandle(Ptr p);
void ReserveMem(Size cbNeeded);
void MoveHHi(Handle h);
void HLockHi(Handle h);
操作内存块
void BlockMove(const void *srcPtr,void *destPtr,Size byteCount);
void BlockMoveData(const void *srcPtr,void *destPtr,Size byteCount);
OSErr PtrToHand(const void *srcPtr,Handle *dstHndl,long size);
OSErr PtrToXHand(const void *srcPtr,Handle dstHndl,long size);
OSErr HandToHand(Handle *theHndl);
OSErr HandAndHand(Handle hand1,Handle hand2);
OSErr PtrAndHand(const void *ptr1,Handle hand2,long size);
分配主要指针
void MoreMasterPointers(UInt32 inCount);
访问内存环境和释放内存
long FreeMem(void);
void PurgeMem(Size cbNeeded);
Size MaxMem(size *grow);
long MaxBlock(void);
void PurgeSpace(long *total,long *contig);
long StackSpace(void);
Size CompactMem(Size cbNeeded);
检查错误
OSErr MemError(void);
2) 在新的Mac OS X采用
1) CFAllocator提供的API
由于我们现在的大部分程序是采用C或C++来书写,所以非常小的使用这些函数,几乎在程序都不大可能用到,用到最多还是C和C++提供的malloc和new函数。