Durante el proceso de escritura de código usando el sistema Linux, existe la posibilidad de enviar una pérdida de memoria. Entonces, los usuarios deberían aprender a verificar la memoria, ¿cómo hace Linux para verificar la memoria? En general, use algunas herramientas, este artículo presentará cómo usar valgrind para verificar la memoria en el sistema Linux.
Tome un vistazo al código:
#include "stdlib.h"
#include "stdio.h"
# include "cadena .h》
static void mem_leak1 (void)
{
char * p = malloc (1);
}
Static void mem_leak2 (void)
{
FILE * fp = fopen (" test.txt ", " w ");
}
static void mem_overrun1 (void)
{
char * p = malloc (1);
* (short *) p = 2;
Libre (p);
}
estático void mem_overrun2 (void)
{
char array [5];
strcpy (array, " hello ");
}
void static mem_double_free (void)
{
char * p = malloc (1);
libre (p);
libre (p);
}
void estático mem_use_wild_pointer (void)
{
char * p = (void *) 0x80184800;
* p = 1;
}
void estático mem_free_wild_pointer (void)
{
char * p;
free (p);
}
int main ()
{
mem_leak1 ();
mem_leak2 ();
mem_overrun1 ();
mem_overrun2 ();
mem_double_free ();
//mem_use_wild_pointer ();
mem_free_wild_pointer ();
return 0;
}
Problemas de memoria comunes:
1. Fuga de memoria dinámica;
2. Fuga de recursos, aquí hay un descriptor de archivos;
3. Memoria dinámica fuera de límites;
4. Memoria de matriz fuera de límites;
5. Memoria dinámica doble libre;
6. Utilice el puntero de comodín, es decir, el puntero sin inicializar;
7. Suelte el puntero de comodín, es decir, el puntero sin inicializar;
Cuando el código de muestra es demasiado simple, el sexto caso hace puntero salvaje conducirá directamente al accidente, por lo que en su mayor parte, no hay código de ejemplo real que llamar. Como valgrind solo puede detectar el código que se ejecutó, la sexta condición de error no se informará en un informe posterior. Sin embargo, en proyectos grandes, es posible usar punteros salvajes sin causar bloqueos en el programa. Además, en los 7 casos anteriores, algunos casos son estrictamente hablando y pueden clasificarse en una categoría. Anterior12Página siguiente Total 2 páginas
¿Una pestaña con algunos espacios? En general, la pestaña de linux tiene 4 espacios. Sin embargo, al
Eclipse es una plataforma de desarrollo de extensión basada en Java. Recientemente, han respondido l
Use el comando chgrp en el sistema Linux para modificar el grupo de archivos o directorios. ¿Cuáles
Glances es una herramienta de monitoreo bajo Linux. Puede monitorear el rendimiento
Cómo utiliza Linux git para ver una rama separada
¿Qué debo hacer si la computadora ASUS F81se instala Ubuntu 12.04?
Cómo poner los archivos eliminados por el comando rm de Linux en la papelera
CentOS instala el método de operación del archivo de cabecera del kernel
Cómo representar la fuente del navegador Chrome en el sistema Linux
Linux a través del script de shell para cortar archivos grandes txt en archivos pequeños
ERROR de Linux yum prompt: ¿cómo resolver el error dbus?
Cómo instalar y configurar Salt
Linux accidentalmente eliminar el archivo de registro syslog cómo hacerlo?
Implementación de Ubuntu de la solución de velocidad lenta comando sudo
Linux solicita [root @ localhost ~] # iptraf al ejecutar comandos?
Indicador de Linux ¿No se puede encontrar el paquete de cómo tratar?
¿Cómo completar el cifrado de archivos en win7? VHD y BitLocker para ayudarlo
Win7 tutorial desfragmentación de disco
Pasos para instalar arping en Fedora 18
Variables de entorno de Linux (a)
Microsoft se concentra en desarrollar Windows 8 Beta o lanzado en enero del próximo año
Características ocultas de Windows 8 M2 7955
Windows no puede iniciar el servicio de audio de Windows?
Win7 comando del teclado de acceso directo del sistema Daquan
El sistema Win8 muestra tres métodos abreviados del escritorio