Правильно ли это, что она будет утечка памяти в C?Свободная память вне функции
unsigned char * prep(int length,int args, ...)
{
unsigned char *message = (unsigned char *) malloc(length);
va_list listp;
va_start(listp, args);
int i = 0;
int len = 0;
unsigned char *source_message ;
int step = 0;
for(i = 0 ; i < args; i++)
{
source_message = va_arg(listp, unsigned char *);
len = va_arg(listp, long);
memcpy(message+step, source_message, (long) len);
step+=len;
}
va_end(listp);
return message;
}
, чем назвать его и освободить указатель за пределами
unsigned char *mess = prepare_packet_to_send(some vars here);
free(*mess);
Не должно быть «бесплатно (беспорядок)»? – Rookie