El uso y el significado de lenguaje C malloc

1, malloc cabecera () es stdlib.h, en función de la siguiente declaración:

* Malloc vacío (tamaño size_t);

En donde el tamaño parámetro size_t representa el tamaño del espacio de asignación dinámica de memoria, en bytes.

typedef size_t se redefine redefinido papel es el de hacer este tipo de usuario de datos de un vistazo, el usuario indica el parámetro representa una longitud, en el tamaño más t, está representado por el tipo de datos entero, ver xxx_t más tarde el tipo, tipos de datos enteros son generalmente redefinidos.

Aquí la función de retorno de malloc () es un valor de puntero, o una primera dirección del espacio de memoria asignada

Si se devuelve la función para el éxito de un cierto espacio de memoria malloc () primera dirección no devuelve un valor nulo

2, p int *;

p = malloc (sizeof (int));

Aquí no está escrita, error: no válida del tipo 'void *' al tipo de conversión 'int' debe decir:

p = (int *) malloc (sizeof (int));

3, antes de la utilización de malloc () de espacio aplicación de función, la función de preferencia con memset () para limpiar este espacio de memoria, porque el uso de la función malloc () para el espacio de única garantía es que el tamaño del espacio de memoria, no lo hace de memoria garantía si hay espacio de datos basura

4, cuando el espacio no está en uso malloc aplicación de función (), se debe utilizar la siguiente función para liberar espacio de memoria de esto:

libre de huecos (void * ptr); void * ptr es donde malloc () valor de retorno de la función, que es la primera dirección del espacio de memoria

Si sólo conoce a su uso, no sé la liberación, a continuación, los incrustados 7 días * 24 horas de operación, es fácil pérdida de memoria, que finalmente llevan a la parálisis del sistema

5, malloc () asigna función de programación espacio dinámico: / ************************************** *

malloc () asigna la función de programación de espacio dinámico:

(1) definir un tipo char * variable de puntero p

(2) p-asignar 10 bytes de espacio de memoria

(3) Copiar "vamos" cadena en el espacio de memoria apuntado por p

(4) A p puntero a espacio de memoria y a continuación, expanda los 20 bytes

(5) "baby!" Espacio de la copia de caracteres detrás de la cadena apuntada por p

(6) la liberación de espacio apuntado por p

**************************************** /

#incluir

#incluir

#incluir

using namespace std;

int main ()

{

char * p;

p = (char ) malloc (10 sizeof (char)); memset (p, 0,10 * sizeof (char)); strcpy (p, “venga”);

cout << "p:" << p << endl; p = (char ) realloc (p, 20 sizeof (char));

tribunal << “t:" << sizeof§ << endl; strcat (p”, baby!");

tribunal << "t:" << p << endl; free§;

return 0;} Salida: p: vamos

p: 4

P: vamos, bebé!

Nota malloc:

Después de 1 memoria malloc además de liberar hasta que la liberación también puede ser liberado automáticamente hasta el final de la ejecución del programa

programa de proceso 2 está en marcha, si ha sido plomo a la memoria malloc sin liberar esta memoria no se puede utilizar de nuevo, que las pérdidas de memoria. De esta manera, la aplicación se utilizará poco a poco toda la memoria disponible y, finalmente, hace que la aplicación se bloquee debido a la insuficiente parada memoria.

3 Así que un buen hábito es que hay que recordar que después de malloc de forma.

Publicados 240 artículos originales · ganado elogios 3 · Vistas 3178

Supongo que te gusta

Origin blog.csdn.net/it_xiangqiang/article/details/105163749
Recomendado
Clasificación