typedef struct _chain
{
int value;
struct _chain *next;
}ChainType;
ChainType *Root,*Item;
int write(int tmp)
{
ChainType *pTmp;
pTmp =(ChainType *)malloc( sizeof(ChainType) );
if (pTmp==NULL)
{
return -1;
}
else
{
memset(pTmp,0,sizeof(ChainType));
if( Item==NULL )
{
//首个元素
Root =pTmp;
Item =Root;
}
else
{
Item->next =pTmp;
Item =Item->next;
}
Item->value =tmp;
return 0;
}
}
void chain_free(ChainType *pRpotTmp)
{
ChainType *pTmp,*pItem;
pItem =pRpotTmp;
while(pItem!=NULL)
{
pTmp =pItem->next;
free(pItem);
pItem =pTmp;
}
}
void main()
{
int i;
for (i=0;i<5;i++)
{
if( write(i)!=0 )
{
while(1);
}
}
chain_free(Root);
while(1);
}