指针问题

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();
}
...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧