これは正しいですか、それは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