| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:数据结构 - 出栈出现问题
只看楼主 加入收藏
FangMengHao
Rank: 1
等 级:新手上路
帖 子:43
专家分:5
注 册:2013-6-19
结帖率:60%
收藏
已结贴  问题点数:10 回复次数:5 
数据结构 - 出栈出现问题
程序代码:
# include <stdio.h>

# include <stdlib.h>



# define MAXSIZE 100



typedef struct

{
    
    int * pbase;
    
    int * ptop;
    
    int stacksize;

}Stack;


void init(Stack * S)

{
    
    int rom[MAXSIZE];
    
    S->pbase = rom;
    
    if (NULL == S->pbase)
        
        exit(-1);
    
    S->ptop = S->pbase;
    
    S->stacksize = MAXSIZE;

}



void push(Stack * S)

{
    
    int val;
    
    printf ("Enter the data:");
    
    scanf ("%d", &val);

    
    *S->ptop = val;
    S->ptop++;

    

}



void pop(Stack * S)

{
    
    int tmp;

    
    if (S->pbase == S->ptop)
        
        exit(-1);

    
    --(S->ptop);
    
    tmp = *S->ptop;
    
    printf ("%d\n", tmp);        

}



int main (void)

{
    
    Stack S;    
    
    init(&S);
    
    push(&S);
    
    push(&S);
    
    pop(&S);
    
    pop(&S);

    
    return 0;

}



龙芯8089d gentoo

编译之后,压栈没有问题,就是出栈的时候只有最后一个栈出来的数据是对的

比如输入 5 20 32
那么输出 32 随机数 随机数

代码哪里有错么?
2014-11-29 00:14
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
init 初始化是错的。

int rom[MAXSIZE];
S->pbase = rom;


init执行完后,rom数组被释放了


[fly]存在即是合理[/fly]
2014-11-29 10:21
liao06550107
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:111
专家分:696
注 册:2011-10-2
收藏
得分:5 
在int rom[MAXSIZE];前加上static或者动态分配內存,或者定义全局数组。

听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2014-11-29 13:11
FangMengHao
Rank: 1
等 级:新手上路
帖 子:43
专家分:5
注 册:2013-6-19
收藏
得分:0 
回复 3 楼 liao06550107
嗯,谢谢~
2014-11-29 15:51
FangMengHao
Rank: 1
等 级:新手上路
帖 子:43
专家分:5
注 册:2013-6-19
收藏
得分:0 
回复 2 楼 azzbcc
具体不是很清楚,不过谢谢了。我再百度一下就好了
2014-11-29 15:52
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:0 
?我运行是正确的呀?
你这有两个PUSH,你就只能压入两个数。
2014-11-29 23:00
快速回复:数据结构 - 出栈出现问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015383 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved