#include <stdio.h>
#include <stdlib.h>
typedef struct DF_NODE
{
int a;
DF_NODE* link;
}ST_NODE;
int main()
{
DF_NODE* node = NULL;
DF_NODE* node_tmp = NULL;
DF_NODE* node_first = NULL;
DF_NODE* node_before = NULL;
int size = 0;
size = sizeof(DF_NODE);
node_tmp = (DF_NODE*) malloc (size);
node = node_tmp;
node_first = node_tmp;
printf("%x\n", node);
node_tmp = (DF_NODE*) malloc (size);
node->link = node_tmp;
node = node->link;
printf("%x\n", node);
node_tmp = (DF_NODE*) malloc (size);
node->link = node_tmp;
node = node->link;
printf("%x\n", node);
printf("\n");
node = node_first;
for(;node;node_before=node,node=node->link)
{
printf("node : %x node_before : %x\n", node, node_before);
free (node);
}
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp0eXBlZGVmIHN0cnVjdCBERl9OT0RFCnsKICAgIGludCBhOwogICAgREZfTk9ERSogbGluazsKfVNUX05PREU7CgppbnQgbWFpbigpCnsKICAgIERGX05PREUqIG5vZGUgPSBOVUxMOwogICAgREZfTk9ERSogbm9kZV90bXAgPSBOVUxMOwogICAgREZfTk9ERSogbm9kZV9maXJzdCA9IE5VTEw7CiAgICBERl9OT0RFKiBub2RlX2JlZm9yZSA9IE5VTEw7CiAgICBpbnQgc2l6ZSA9IDA7CgogICAgc2l6ZSA9IHNpemVvZihERl9OT0RFKTsKICAgIG5vZGVfdG1wID0gKERGX05PREUqKSBtYWxsb2MgKHNpemUpOyAgICAKICAgIG5vZGUgPSBub2RlX3RtcDsKICAgIG5vZGVfZmlyc3QgPSBub2RlX3RtcDsKICAgIHByaW50ZigiJXhcbiIsIG5vZGUpOwoKICAgIG5vZGVfdG1wID0gKERGX05PREUqKSBtYWxsb2MgKHNpemUpOyAgICAKICAgIG5vZGUtPmxpbmsgPSBub2RlX3RtcDsKICAgIG5vZGUgPSBub2RlLT5saW5rOwogICAgcHJpbnRmKCIleFxuIiwgbm9kZSk7CgogICAgbm9kZV90bXAgPSAoREZfTk9ERSopIG1hbGxvYyAoc2l6ZSk7ICAgIAogICAgbm9kZS0+bGluayA9IG5vZGVfdG1wOwogICAgbm9kZSA9IG5vZGUtPmxpbms7CiAgICBwcmludGYoIiV4XG4iLCBub2RlKTsKCiAgICBwcmludGYoIlxuIik7CiAgICBub2RlID0gbm9kZV9maXJzdDsKICAgIGZvcig7bm9kZTtub2RlX2JlZm9yZT1ub2RlLG5vZGU9bm9kZS0+bGluaykKICAgIHsKICAgICAgICBwcmludGYoIm5vZGUgOiAleCAgIG5vZGVfYmVmb3JlIDogJXhcbiIsIG5vZGUsIG5vZGVfYmVmb3JlKTsKICAgICAgICBmcmVlIChub2RlKTsKICAgIH0KICAgIAogICAgCiAgICAKICAgIHJldHVybiAwOwp9Cg==