usar - ¿Se necesita un malloc() antes de un realloc()?
malloc sizeof (2)
De las especificaciones de los Grupos Abiertos :
Si ptr es un puntero nulo, realloc () será equivalente a malloc () para el tamaño especificado.
Si ptr no coincide con un puntero devuelto anteriormente por calloc (), malloc () o realloc () o si el espacio ha sido desasignado previamente por una llamada a free () o realloc (), el comportamiento no está definido.
Como leí realloc actuará como malloc si el tamaño apuntado es 0, lo estaba usando sin malloc (), siempre que el puntero fuera estático, global o explícitamente establecido en NULL si es automático.
Sin embargo, observo que muchos programadores intentan configurarlo o configurarlo en malloc (1). ¿Es necesario?
No se requiere malloc
, solo puedes usar realloc
.
malloc(n)
es equivalente a realloc(NULL, n)
.
Sin embargo, a menudo es más claro usar malloc
lugar de semántica especial de realloc
. No se trata de lo que funciona, pero no confunda a las personas que leen el código.
(Edición: se eliminó la mención de realloc
actúa como free
, ya que no es el estándar C. Ver comentarios).