#include "adlist.h"
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<time.h>
int main()
{
struct list *t;
t=listCreate();
int i;
char *pb[5];
char buf[25];
srand(time(NULL));
char *pd;
for(i=0;i<5;i++)
{
//Method1:
//pb[i]=(char*)malloc(sizeof(char)*10);
//Method2:
pd=(char*)malloc(sizeof(char)*10);
sprintf(pd,"test index:%d.",rand()%100);
//Method3:
//memset(buf,0,25);
//char buf[25];
//sprintf(buf,"test index:%d.",rand()%100);
// , buf for loop , listAddNodeHead buf value ,
// list , listAddNodeHead value.
// , loop ,malloc , loop, 。 。
//
t = listAddNodeHead(t,(void*)pd);
//t = listAddNodeTail(t,(void*)buf);
if(!t){
printf("listAddNodeHead error!
");
exit(0);
}
printf("%s
",pd);
//free(pb[i]);
//free(pd);
}
free(pd);
printf("
");
listNode *p=NULL;
p=t->head;
if(p->prev==NULL){
printf("OK
");
}
while(p!=NULL)
{
printf("%s
",p->value);
p=p->next;
}
printf("
");
/*p=t->tail;
if(p->next==NULL){
printf("OK
");
}
while(p!=NULL)
{
printf("%s
",p->value);
p=p->prev;
}
printf("
");*/
// #define AL_START_HEAD 0
// #define AL_START_TAIL 1
listIter *it=NULL;
listNode *node=NULL;
it = listGetIterator(t,0);
while((node=listNext(it))!=NULL)
{
printf("%s
",node->value);
listDelNode(t,node);
}
listReleaseIterator(it);
listRelease(t);
return 0;
}
, redis 。