Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como depurar um vazamento de memória em C + +
Um vazamento de memória é quando um programa faz com que o consumo de um incremento , mas constante de memória, fazendo com que o programa para usar mais memória do que ele precisa. Na melhor das hipóteses o programa vai simplesmente usar mais memória e retardar o computador. Casos extremos usará memória suficiente para fazer com que outros programas a falhar devido à falta de memória disponível, o pior cenário que irá travar o seu sistema operacional. Em C + +, vazamentos de memória pode ser causada por vários erros diferentes na codificação . A seguir irá mostrar-lhe como verificar para ver se o programa tiver um vazamento de memória e onde encontrá-lo . Instruções
1

Descubra se o seu programa tem um vazamento de memória. Execute o programa através do depurador digitando:

' _CrtDumpMemoryLeaks ()'

A primeira linha de código irá ler " vazamentos de memória detectada! " Se não, então o programa não tem um vazamento de memória.
2

Rastrear a localização do vazamento de memória. A terceira linha de

' _CrtDumpMemoryLeaks () ' em

usado com a declaração:

' # define _CRTDBG_MAP_ALLOC ' em

irá dizer-lhe o nome do arquivo onde a memória vazada foi alocado. Você também pode usar MFC para acompanhar as alocações de memória . No MFC a macro: .

' DEBUG_NEW ' em

pode ser usado para rastrear vazamentos de memória
3

Vá para o arquivo indicado. A má codificação terá que ser localizado. Existem várias causas de um vazamento de memória ; uso errado de novo /apagar , uma exclusão equivocada , "perdido" ponteiros ou um ponteiro sai do escopo . Verifique as linhas de código onde a memória é alocada e corrigir quaisquer problemas . Verifique se a memória alocada em um loop é liberado em cada iteração. Certifique-se de ponteiros não pode ir fora do escopo antes que a memória é liberada. Verifique também se os códigos:

' malloc ' /' livre ' em

'novo' /' apagar ' em

' new [] ' /delete [ ] '< br >

são usados ​​corretamente
4

Execute o programa através do depurador novamente, digitando : .

' _CrtDumpMemoryLeaks () ' em

para ver se o problema ainda ocorre.

Anterior :

Próximo : No
  Os artigos relacionados
·Como escrever um programa em C para converter Hexadecim…
·Como usar números negativos em C 
·Como fazer um arquivo VSH 
·Como construir um aplicativo móvel que usa uma câmera…
·Como conectar C # para o MS Excel 
·Como organizar uma lista usando estruturas em C + + 
·Como utilizar a função HeapSize 
·Como incluir fontes personalizadas em um iPhone usando …
·As vantagens de LINQ 
·Como calcular o número de linhas em um arquivo usando …
  Artigos em destaque
·Como inicializar matriz 2D em duas demonstrações 
·Como calcular expressões com incremento e Decremento O…
·Como converter CPP a DLL 
·Como Alocar Ponteiros 
·Como determinar o tamanho da estrutura em tempo de exec…
·Como compilar o código C como uma Biblioteca 
·Como usar LINQ em WPF 
·Como criar um arquivo binário do C # 
·Como criar uma String dinâmica em C + + 
·Como compilar um C + + no Dev- C 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados