指针问题

mi6236 2006-03-17 10:39:09
#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;
typedef struct node{
ElemType data;
struct node *next;
}LNode,*LinkList;

1、存在问题
void initlist(LNode *head)
{
head=(LNode *)malloc(sizeof(LNode));
head->next=NULL;
}

void main()
{
LNode *link;
initlist(link);
}
我原意是利用传递指针型结构变量来改变实参值,可这样传好像还是按值传递,产生了拷贝副本。为何如何改呢。

2、利用下面方法没问题
LNode * initlist()
{
LNode *head;
head=(LNode *)malloc(sizeof(LNode));
head->next=NULL;
return head;
}

void main()
{
LNode *link;
link=initlist();
}
...全文
59 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mi6236 2006-03-17
解决
  • 打赏
  • 举报
回复
hustcslhb 2006-03-17
标准C不支持引用的话,或者考虑使用指针的指针就行了

void initlist(LNode **head) //这里改成指针的引用就可以了
{
*head=(LNode *)malloc(sizeof(LNode));
(*head)->next=NULL;
}
  • 打赏
  • 举报
回复
zzw820626 2006-03-17
void initlist(LNode& *head) //这里改成指针的引用就可以了
{
head=(LNode *)malloc(sizeof(LNode));
head->next=NULL;
}
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
申请成为版主
帖子事件
创建了帖子
2006-03-17 10:39
社区公告
暂无公告