malloc - asignar memoria dinámicamente
#include <stdlib.h>
void *malloc(size_t size);
Piense en void *
como el significado de la dirección de cualquier tipo de valor en la memoria. Piense en size_t
como un long
.
Esta función asigna dinámicamente size
bytes contiguos de memoria (en el montón) que se pueden usar para almacenar cualquier tipo de valores.
Esta función devuelve la dirección del primer byte de memoria asignada o NULL
en casos de error (como cuando no hay suficiente memoria disponible).
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *s = malloc(4);
if (s == NULL)
{
return 1;
}
s[0] = 'h';
s[1] = 'i';
s[2] = '!';
s[3] = '\0';
printf("%s\n", s);
free(s);
return 0;
}