写了个小代码来验证课本的源码,咋我总觉得那代码有问题,,求指点
这是<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 编辑 ]







