69,382
社区成员
发帖
与我相关
我的任务
分享
#include <stdlib.h>
#include <string.h>
typedef struct buffer_item bItem;
struct buffer_item
{
char *buf;
unsigned length;
bItem *next;
};
bItem *malloc_buf(int size)
{
bItem *buf = (bItem *)malloc(sizeof(bItem));
buf->buf = (char *)malloc(size + 1);
buf->length = size;
buf->next = NULL;
return buf;
}
void free_buf(bItem **pNode)
{
// free(node->buf); //主要看这里 到底要不要这句
if ( (*pNode) == NULL )
{
return;
}
if ( (*pNode)->buf )
{
free( (*pNode)->buf );
(*pNode)->buf = NULL;
}
if ( (*pNode) )
{
free( (*pNode) );
(*pNode) = NULL;
}
}
int main()
{
bItem * pItem = malloc_buf( 14 );
strcpy( pItem->buf, "112233" );
free_buf( &pItem );
return 0;
}