Volver a la página principal
sábado 8 marzo 2025
5

Cómo asignar memoria dinámicamente en C++ con malloc

En C++, la función malloc se usa para asignar memoria dinámicamente en el montón (heap). Aunque es más común utilizar new en C++, malloc sigue siendo útil en ciertos casos, especialmente cuando se trabaja con código en C.

Uso de malloc en C++

La función malloc (memory allocation) se encuentra en la biblioteca <cstdlib> y devuelve un puntero a un bloque de memoria contigua de tamaño especificado. Como malloc no inicializa la memoria asignada, se recomienda usar calloc si se necesita memoria inicializada en cero.

Sintaxis

void* malloc(size_t size);
Parámetro Descripción
size Cantidad de bytes a asignar en memoria.

Consideraciones

  • malloc devuelve un puntero void*, por lo que se debe hacer una conversión de tipo.
  • Si no se puede asignar memoria, devuelve NULL.
  • La memoria asignada con malloc debe liberarse con free para evitar fugas de memoria.

Ejemplos de uso de malloc en C++

Asignar memoria para un array de enteros

#include <iostream>
#include <cstdlib>

int main() {
    int* arr = (int*)malloc(5 * sizeof(int)); // Reservar memoria para 5 enteros
    
    if (arr == NULL) {
        std::cerr << "Error al asignar memoria\n";
        return 1;
    }

    // Inicializar valores
    for (int i = 0; i < 5; i++) {
        arr[i] = i * 10;
    }

    // Mostrar valores
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }

    free(arr); // Liberar memoria
    return 0;
}

Comparación con new

En C++, es preferible usar new en lugar de malloc, ya que new llama al constructor del objeto y no requiere conversión de tipo:

int* arr = new int[5]; // Equivalente a malloc en C++
delete[] arr; // Liberar memoria
Etiquetas:
cpp
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer