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.
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.
void* malloc(size_t size);
| Parámetro | Descripción |
|---|---|
size
|
Cantidad de bytes a asignar en memoria. |
malloc devuelve un puntero void*, por lo que se debe hacer una conversión de tipo.
NULL.
malloc debe liberarse con free para evitar fugas de memoria.
#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;
}
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
Jorge García
Fullstack developer