Saltar al contenido

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 dinámicamente un bloque de memoria. Reserva un espacio de memoria de un tamaño especificado y devuelve el puntero nulo que apunta a la ubicación de la memoria. El puntero devuelto suele ser de tipo nulo. Significa que podemos asignar una función malloc a cualquier puntero.

Proporción

ptr = (cast_type *) malloc (byte_size);

Seo

  • Ptr es un puntero cast_type.
  • La función malloc devuelve un puntero a la memoria asignada de byte_size.
Example: ptr = (int *) malloc (50)

Tras la ejecución satisfactoria de esta declaración, se reserva un espacio de memoria de 50 bytes. La dirección del primer byte del espacio reservado se asigna al puntero 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));
    }
}

Producción:

Value of the 6th integer is 480
  1. Tenga en cuenta que tamaño (* ptr) usado en su lugar sizeof (int) para fortalecer el código cuando se escribe una declaración * ptr en un tipo diferente de datos más adelante.
  2. La asignación puede fallar si la memoria es insuficiente. En este caso, devuelve un puntero NULL. Por lo tanto, debe incluir un código para verificar el puntero NULL.
  3. Tenga en cuenta que la memoria asignada es contigua y se puede manejar como una matriz. Podemos usar aritmética de punteros para acceder a los elementos de la matriz en lugar de usar paréntesis [ ]. Recomendamos usar + para referirse a elementos de matriz porque el incremento de ++ o + = cambia la dirección almacenada por el puntero.

La función Malloc también se puede utilizar con el tipo de datos de caracteres, así como con tipos de datos complejos, como estructuras.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *