這是正確的,它會在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