- 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
Define o flag de gerenciamento de memória.
void FreeMode(
|
Parâmetros
mode
[in] O novo valor do flag de gerenciamento de memória.
Valor do Retorno
Nenhum.
Observação
Definir o flag de gerenciamento de memória - um ponto importante no uso da classe CArrayObj. Desde que os elementos do array são ponteiros para objetos dinâmicos, é importante determinar o que fazer com eles quando remover o array.
Se o flag estiver definido, remove um elemento a partir do array, o elemento é automaticamente excluído pelo operador "delete". Se o flag não está definido, é assumido que um ponteiro para o objeto excluído ainda está em algum lugar no programa do usuário e será aliviado dele (do programa) então.
Se o usuário resetar o flag de gerenciamento de memória, deve compreender a sua responsabilidade para a remoção do array antes da conclusão do programa, porque de outra forma, a memória liberada não é ocupada pelos elementos quando eles criam um novo operador.
Se o usuário não resetar o flag de gerenciamento de memória, há um outro "recife", ou seja, grandes quantidades de dados eventualmente poderiam até mesmo quebrar o seu terminal.
Usando ponteiros e array armazenados em algum lugar das variáveis locais, após a remoção do array irá levar a um erro crítico e trava o programa do usuário. Por padrão, o flag de gerenciamento de memória está definido, ou seja, a classe do array é responsável por liberar os elementos de memória.
Exemplo
//--- example for CArrayObj::FreeMode(bool)
|