构建顺序栈问题,在线等!!

mikescofied 2009-03-14 07:31:19
//不知道有什么问题,编译与连接都通过了,帮忙看看是什么问题...


#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#define STACK_INCREAMENT 10
#define STACK_INTSIZE 100
typedef int selemtype;
typedef struct Snode
{
selemtype *base;
selemtype *top;
int stacksize;
}Snode, *Slink;

void Init_stack(Slink &s)
{
s->base = (selemtype *)malloc(STACK_INTSIZE * sizeof(selemtype));
if( !s->base )
{
printf(" the overflow error in Init_stack\n ");
exit(1);
}
s->stacksize = STACK_INTSIZE;
s->top = s->base;
}
void main()
{
Slink s = NULL;
Init_stack( s );
}
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mikescofied 2009-03-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bitxinhai 的回复:]
Slink s = NULL;

你的头结点没有分配空间,
当然会出错了!!!!!
[/Quote]
正解.......................
bitxinhai 2009-03-14
  • 打赏
  • 举报
回复
Slink s = NULL;

你的头结点没有分配空间,
当然会出错了!!!!!
万猫学社 2009-03-14
  • 打赏
  • 举报
回复
因为s没有指向实际内存。另外,顶5楼的!
mikescofied 2009-03-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lwouyang 的回复:]
把main函数改了一下,你再试试!

void main()
{
Snode snode;
Slink s = &snode;
Init_stack( s );
}
[/Quote]
这样做可以,那刚开始那种错误的原因到底是因为什么........?
lwouyang 2009-03-14
  • 打赏
  • 举报
回复
把main函数改了一下,你再试试!

void main()
{
Snode snode;
Slink s = &snode;
Init_stack( s );
}
mikescofied 2009-03-14
  • 打赏
  • 举报
回复
一运行,就弹出一个方框............真的是无语了...你有空的话就在你的机器上跑一下嘛,谢谢!帮帮忙
lwouyang 2009-03-14
  • 打赏
  • 举报
回复
呵呵。。
说说程序跑起来有什么异常表现吧。
mikescofied 2009-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lwouyang 的回复:]
帮up!
[/Quote]
谢谢up ,但是最好能解决问题呀!!
lwouyang 2009-03-14
  • 打赏
  • 举报
回复
帮up!

70,037

社区成员

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

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