为什么指针链表作参数都不行了???

xlxlxl1985 2011-01-05 07:44:12

//conversion function.
typedef struct Node
{
int data;
struct Node * next;
}node;

node * createstack()
{
node * top;
top = (node *)malloc(sizeof(node));
top->next = NULL;
top->data = -1;
return top;
}

void addsknode(node * top, int in)
{
if(top->data == -1)
top->data = in;
else
{
node * newtop;
newtop = (node *)malloc(sizeof(node));
newtop->data = in;
newtop->next = top;
top = newtop;
}
}

void delstnode(node * top)
{
node * del;
del = top;
top = top->next;
free(del);
}

int main(int argc, char *argv[])
{
int toc, i, div, mod, bit;
printf("Enter:\n");
scanf("%d", &toc);
div = toc;
printf("Enter bit:(2, 8, 16)\n");
scanf("%d", &bit);
switch(bit)
{
case 2: i = 8;break;
}

node * stack = createstack();
do
{
div = div / bit;
mod = div % bit;
addsknode(stack, mod);
i --;
}while(i != 0);
printf("%d", stack->data);
while(stack->next != NULL)
{
delstnode(stack);
printf("%d", stack->data);
}
system("PAUSE");
return 0;
}



如上, 居然stack接不到地址? 始终是在初始分配的地址上, 这是为什么???
...全文
143 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongwenbo520 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yangglemu 的回复:]
引用 2 楼 dizuo 的回复:
需要传引用或者二级地址
void addsknode(node* &top, int in)
void addsknode(node** top, int in)


+1
[/Quote]

+1
think_for_computer 2011-01-05
  • 打赏
  • 举报
回复
菜鸟路过.

void delstnode(node * &top)

也要加一个&。才能运行。
無_1024 2011-01-05
  • 打赏
  • 举报
回复
指针的引用赋值啊
羽飞 2011-01-05
  • 打赏
  • 举报
回复
前两排正解,addsknode中的top就是一个形参,就和swap例子一样的
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dizuo 的回复:]
需要传引用或者二级地址
void addsknode(node* &top, int in)
void addsknode(node** top, int in)
[/Quote]

+1

ryfdizuo 2011-01-05
  • 打赏
  • 举报
回复
需要传引用或者二级地址
void addsknode(node* &top, int in)
void addsknode(node** top, int in)
ryfdizuo 2011-01-05
  • 打赏
  • 举报
回复
//void addsknode(node * top, int in)

void addsknode(node* &top, int in){
if(top->data == -1)
top->data = in;
else
{
node * newtop;
newtop = (node *)malloc(sizeof(node));
newtop->data = in;
newtop->next = top;
top = newtop;
}
}

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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