【发布时间】:2012-03-31 22:50:46
【问题描述】:
这是正确的,它会在 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);
【问题讨论】:
-
不应该是
free(mess)吗?
标签: c memory-management memory-leaks