iCAx开思工具箱

标题: 【求助】如何得到返回值呢 [打印本页]

作者: tari    时间: 2004-6-8 17:07
标题: 【求助】如何得到返回值呢
struct feat
  {
  tag_t  feature;
  struct feat *next;
  }
insert_list(struct feat *head,tag_t feat)
{
  #define  NULL  0
  #define  LEN    sizeof(struct feat)
  struct feat *p1,*p2;
  p2=(struct feat*)malloc(LEN);
  p2->feature=feat;
  p2->next=NULL;
  if(head==NULL)
  {     
    head=p2;
  }
  else
  {   
    p1=head;
    while(p1->next!=NULL)
    {
      p1=p1->next;
    }
    p1->next=p2;
  }  
  return *head;
}
。。。。。。
struct feat *head=NULL;
while(feature!=NULL)
insert_list(head,feature);
在insert_list()里head有值,一跳出循环,head就为0了,这是怎么回事阿,怎么解决?
作者: tari    时间: 2004-6-9 09:29
从C语言的角度应该行啊,高手帮帮忙!
作者: ptjmy    时间: 2004-6-9 10:29
传递的是指针啊,我也想知道,哪位高手帮忙解答一下!
作者: ptjmy    时间: 2004-6-9 12:32
zzz版主,帮忙看一下吧
作者: acoka    时间: 2004-6-9 17:06
你的interface只能改变head指向的实体的内容,而不能改变head的指向
  
你可以用
  
fun( struct feat **ppHEAD,....)
{
  struct feat *phead;
  ...
  *ppHEAD = head;
  
}
  

un( struct feat &HEAD,....)
{
  
HEAD.next....
  
}




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3