数据结构顺序栈的基本操作,小白第一步卡主 了

fxfxfxfxw 2016-03-13 02:00:52
#include<stdio.h>
struct test
{
int *top, *base;
int stacksize;
};
void InitStack(struct test s)
{
s.base = (int *)malloc(100 * sizeof(int));

s.top = s.base;
s.stacksize = 100;
}
int main()
{
struct test s;
InitStack(s);
}

初始化空栈就卡住了,求大神写一个顺序栈的基本操作的C语言代码
...全文
388 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
高桥美惠 2016-03-13
  • 打赏
  • 举报
回复
原来的代码中的第二个函数的参数改为引用也是可以的,主要是为了能传递地址
bsnry 2016-03-13
  • 打赏
  • 举报
回复
struct test *s;

InitStack(s);


没分配内存

fxfxfxfxw 2016-03-13
  • 打赏
  • 举报
回复
#include<stdio.h>
struct test
{
	int *top, *base;
	int stacksize;
};
void InitStack(struct test *s)
{
	(*s).base = (int *)malloc(100 * sizeof(int));

	(*s).top = (*s).base;
	(*s).stacksize = 100;
}
int main()
{
	struct test s;
	InitStack(&s);
}
这样就可以了,不知道原因啊,
#include<stdio.h>
struct test
{
	int *top, *base;
	int stacksize;
};
void InitStack(struct test *s)
{
	(*s).base = (int *)malloc(100 * sizeof(int));

	(*s).top = (*s).base;
	(*s).stacksize = 100;
}
int main()
{
	struct test *s;
	InitStack(s);
}
然而这样就不不可以了,求解释
bsnry 2016-03-13
  • 打赏
  • 举报
回复
InitStack(struct test s) 改成指针,

69,371

社区成员

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

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