c语言,dev c++,编译无错,运行不能为read,程序是把用户输入的数据存入栈并输出。

[复制链接]
查看11 | 回复4 | 2012-2-4 17:05:43 | 显示全部楼层 |阅读模式
原始程序做些小修改就可以成功运行了。(默认是C++程序)1、函数InitStack、Push及Pop的struct stack s要改成struct stack& s。2、Push函数内的s.top=&x;要改成*(s.top)=x;。3、检测回车输入的时候,要用\r而非\n。(至少我在VS2008里面是这样的。)4、若是在VS2008的环境下,使用conio.h里面的_getche满足要求。...
回复

使用道具 举报

千问 | 2012-2-4 17:05:43 | 显示全部楼层
dev cpp是gcc编译器的,我挺喜欢。楼主写出来的是.c程序么?如果是的话就像zxfishhack说的:1、Push函数内的s.top=&x;要改成*(s.top)=x;。是给top指向的那个单元(在栈里面)赋值为x。而s.top=&x是让那个指针指向了x,不是栈里面的内容,当Push函数结束时,x的空间就被释放了,可你的s.top仍指向x空间,这...
回复

使用道具 举报

千问 | 2012-2-4 17:05:43 | 显示全部楼层
代码问题确是有点多,很多基本概念都没有弄清楚,加油!稍提几点:1)没有理解函数参数传递存在拷贝的情况,建议恶补一下。所以你InitStack,Push参数传递都是有问题的。2)Pop函数有返回值类型INT,实现却无返回值。...继续努力。。。...
回复

使用道具 举报

千问 | 2012-2-4 17:05:43 | 显示全部楼层
朋友,你是初学者吧,建议你先上网找点代码看看,你写的程序里的错误比较多,编译没有错误,但是运行时就会出现甚多错误!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行