这是正确的,它会在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 2012-03-31 22:58:35