- FreeMode
- FreeMode
- Reserve
- Resize
- Clear
- Shutdown
- CreateElement
- Add
- AddArray
- Insert
- InsertArray
- AssignArray
- Update
- Shift
- Detach
- Delete
- DeleteRange
- At
- CompareArray
- InsertSort
- Search
- SearchGreat
- SearchLess
- SearchGreatOrEqual
- SearchLessOrEqual
- SearchFirst
- SearchLast
- Save
- Load
- Type
FreeMode
设置内存管理标志。
void FreeMode(
|
参数
mode
[输入] 新的内存管理标志值。
返回值
无。
注释
设置内存管理标志 - 这是使用类 CArrayObj 的重点。由于数组元素是动态对象指针, 当从数组删除时判断做什么就很重要。
如果标志已设置, 从数组删除元素时元素自动由操作符删除。如果标志未设置, 则假设删除对象的指针在用户程序的某处依然使用, 且程序随后会将其释放。
如果用户重置了内存管理标志, 用户必须了解他们有责任在程序完成前删除数组, 因为不这样做的话, 在创建新的操作符时原有元素所占用的内存不会被释放。
当数据量很大时, 它会产生泄露, 最终甚至会破坏您的终端。如果用户没有重置内存管理标志, 还有另一个 "暗礁"。
使用存储在本地变量某处的数组元素指针, 当删除数组后将会导致严重错误并令用户程序崩溃。省缺时, 内存管理标志被设置, 即数组类负责释放内存元素。
例如:
//--- 例程 CArrayObj::FreeMode(bool)
|