Saludos guzzano, buena observacion; la opcion del 0 final lo puse con el proposito de reutilizar la funcion: por defecto en datos bajados de red (aun en texto plano) no quiero el 0 final, pero para cualquier otro tipo de operacion si. Es lo que tienes en tu codigo:
Para el proyecto no nos interesa que siempre termine en 0.
Lo de rellenar la variable completa de 0 lo puse y ahi se quedo (solo está en el malloc), tengo que quitarlo ya que no tiene sentido.
Y una observacion:
Código C:
Ver original*buff
= realloc(*buff
, block_size
+ new_size
); if (!*(buff))
return NOT_MEMORY;
No apliques el realloc sobre la variable final, en caso de error obtienes una perdida de memoria (memory leak); usa un temporal para la asignacion:
Código C:
Ver originalchar *tmp;
if(!(tmp
= realloc(*buff
, block_size
+ new_size
))) { return NOT_MEMORY;
}
*buff = tmp;
Saludos
vosk