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