
c语言中,可以将一个地址赋给一个指针变量吗?
有以下语句:if((fp1=fopen("head.txt","r"))!=NULL)//当文件不是空时,使head始终指向第一个节点{fscanf(fp1,"%d",&...
有以下语句:
if((fp1=fopen("head.txt","r"))!=NULL) //当文件不是空时,使head始终指向第一个节点
{
fscanf(fp1,"%d",&i);
head=(struct book *)i;
fclose(fp1);
}
其中,i 已经被赋与一个地是第一个址了(也就是节点的地址),这样把i的值赋给head有错误吗? 我一编译就显示"XXX.exe"已经停止工作 的错误.. 我家用win7 64位 兼容上是否出现问题呢?
if(head==NULL)
{
head=p;
fp1=fopen("head.txt","w");
i=(int)head;
fprintf(fp1,"%d",i);
fclose(fp1);
}
p=(book *)malloc(sizeof(book));
q->next=p;
p->next=NULL;
q=p;
} 这是create函数的代码,请问还有什么其他解决办法吗? 展开
if((fp1=fopen("head.txt","r"))!=NULL) //当文件不是空时,使head始终指向第一个节点
{
fscanf(fp1,"%d",&i);
head=(struct book *)i;
fclose(fp1);
}
其中,i 已经被赋与一个地是第一个址了(也就是节点的地址),这样把i的值赋给head有错误吗? 我一编译就显示"XXX.exe"已经停止工作 的错误.. 我家用win7 64位 兼容上是否出现问题呢?
if(head==NULL)
{
head=p;
fp1=fopen("head.txt","w");
i=(int)head;
fprintf(fp1,"%d",i);
fclose(fp1);
}
p=(book *)malloc(sizeof(book));
q->next=p;
p->next=NULL;
q=p;
} 这是create函数的代码,请问还有什么其他解决办法吗? 展开
4个回答
展开全部
i是一个变量还是一个指针,如果是一个变量,这不可把它强制类型转换成(struct book *)。
如果i是一个指针,则fscanf(fp1,"%d",&i);不需要再对i取地址了。
如果i是一个指针,则fscanf(fp1,"%d",&i);不需要再对i取地址了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
真实的链表首指针每次运行都不一样,保存下来也不能用。你不妨把creat()的完整调用也发出来看看有没有其它的解决方案。
追问
保存的是第一个节点的地址,那每次都把这个地址赋给就行head不了吗? 除非把所有节点删了再重新录入信息,head才会变成新的吧? 如果真不行,那怎样才可以实现每次运行程序,head都保持第一个节点的地址啊? 因为我做的程序是图书登记管理程序,运行第一次后,再运行head又变回原来的,那根本实现不了图书信息的显示啊
还有,那个函数因为字数限制发不上来啊。。。 方便的话,可以加上我qq吗? 313957847 拜托了!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序没看懂,但是地址是可以赋给指针的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询