Función malloc() en la biblioteca C con EJEMPLO
¿Qué es malloc en C?
La función malloc() significa asignación de memoria. Es una función que se utiliza para asignar un bloque de memoria de forma dinámica. Reserva espacio de memoria de un tamaño específico y devuelve el puntero nulo que apunta a la ubicación de la memoria. El puntero devuelto suele ser de tipo void. Significa que podemos asignar la función malloc a cualquier puntero.
Sintaxis
ptr = (cast_type *) malloc (byte_size);
Aquí,
- ptr es un puntero de cast_type.
- La función malloc devuelve un puntero a la memoria asignada de byte_size.
Example: ptr = (int *) malloc (50)
Cuando esta declaración se ejecuta con éxito, se reserva un espacio de memoria de 50 bytes. La dirección del primer byte del espacio reservado se asigna al puntero ptr de tipo int.
Considere otro ejemplo de implementación de malloc:
#include <stdlib.h> int main(){ int *ptr; ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */ if (ptr != NULL) { *(ptr + 5) = 480; /* assign 480 to sixth integer */ printf("Value of the 6th integer is %d",*(ptr + 5)); } }
Salida:
Value of the 6th integer is 480
- Darse cuenta de tamaño de(*ptr) se usó en lugar de tamaño de (int) para hacer que el código sea más robusto cuando la declaración *ptr se convierta a un tipo de datos diferente más adelante.
- La asignación puede fallar si la memoria no es suficiente. En este caso, devuelve un puntero NULL. Por lo tanto, debe incluir código para verificar si hay un puntero NULL.
- Tenga en cuenta que la memoria asignada es contigua y se puede tratar como una matriz. Podemos utilizar la aritmética de punteros para acceder a los elementos de la matriz en lugar de utilizar corchetes [ ]. Recomendamos utilizar + para hacer referencia a los elementos de la matriz porque el uso de incrementos ++ o += cambia la dirección almacenada por los elementos de la matriz. puntero.
La función malloc también se puede utilizar con el tipo de datos de carácter, así como con tipos de datos complejos como estructuras.