写了个小代码来验证课本的源码,咋我总觉得那代码有问题,,求指点
这是<C和指针>里面的一个源代码,自己加了点代码上去验证这个函数,咋我总觉得有点问题,调用函数后会在函数里for(....)语句处死掉,,求解,,,我用的编程序代码:
#include<stdlib.h> #include<stdio.h> #include<malloc.h> typedef struct NODE { struct NODE*fwd; struct NODE*bwd; int value; }Node; int dll_insert(register Node*rootp,int value) { register Node *This; register Node *Next; register Node *newnode; for(This=rootp;(Next=This->fwd)!=NULL;This=Next) { if(Next->value==value) { return 0; } if(Next->value>value) { break; } } newnode=(Node*)malloc(sizeof(Node)); if(newnode==NULL) { return -1; } newnode->value=value; newnode->fwd=Next; This->fwd=newnode; if(This=rootp) { newnode->bwd=This; } else { newnode->bwd=NULL; } if(Next!=NULL) { Next->bwd=newnode; } else { rootp->bwd=newnode; } return 1; } int main() { int judge,value; Node*rootp; printf("请输入数字,输入任意字母加回车则退出输入数据."); while (scanf("%d",&value)==1) { judge=dll_insert(rootp,value); } printf("\n\n\n开始打印\n"); while(rootp!=NULL) { printf("%d",rootp->value); rootp=rootp->fwd; } return 0; }译器是VS2012
[ 本帖最后由 iangzy 于 2012-12-5 23:25 编辑 ]