- 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
Establece la bandera de gestión de memoria.
void FreeMode(
|
Parámetros
mode
[in] Valor nuevo de la bandera de gestión de memoria.
Valor devuelto
Ninguno.
Nota
Configurar la bandera de gestión de memoria es un aspecto importante en el uso de la clase CArrayObj. Dado que los elementos del array son punteros a objetos dinámicos es importante determinar qué hacer con ellos al borrarlos del array.
Si se establece la bandera, al eliminar un elemento del array, el elemento se borra automáticamente por medio del operador delete. Si no se establece la bandera, se asume que todavía existe un puntero al objeto eliminado en algún lugar del programa, y el programa lo liberará a continuación.
Si el usuario reinicia la bandera de gestión de memoria, entonces debe entender que tiene que responsabilizarse de la eliminación del array antes de que finalice el programa, porque de lo contrario, la memoria será ocupada por otros elementos al crear el nuevo operador.
Si el usuario no reinicia la bandera de gestión de memoria, se puede incluso estropear el terminal al manejar grandes cantidades de datos.
Almacenar punteros y arrays en variables locales después de borrar el array, dará lugar a errores críticos y bloqueos del programa. De forma predeterminada, queda establecida la bandera de gestión de memoria; la clase del array se responsabiliza de liberar la memoria de los elementos.
Ejemplo:
//--- ejemplo de CArrayObj::FreeMode(bool)
|