我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 看看哪里溢出了? 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

独飞の孤心



性别: 帅哥 状态: 该用户目前不在线
头衔: 孽缘!
等级: 荣誉会员
家族: 单身贵族
发贴: 4484
威望: 3
浮云: 496
在线等级:
注册时间: 2005-10-12
最后登陆: 2011-09-23

5come5帮你背单词 [ amplify /'æmplifai/ vt. 扩大,加大,引伸,详述 ]


看看哪里溢出了?

#include <stdio.h>
#include <malloc.h>
#define MAX 20

typedef struct
{
  int top;
  int e[MAX];
}Stack;

void Init(Stack *S);

void main()
{
  int elem;
  Stack *s;
  Init(s);
  printf("now the stack's size is:%d\n",s->top);
}  


void Init(Stack *S)
{
  S=(Stack *)malloc(sizeof(Stack));
  if(S==NULL)
  {
    printf("failed!\n");
  }
  S->top=1;  
  printf("***size***:%d\n",S->top);
}



输出结果是***size***:1
          now the stack's size is:18756

请问是哪里溢出了呢?
为什么在子函数都可以正确输出,而到了main就变了呢

谢谢


[ 此贴被独飞の孤心在2006-09-09 13:34重新编辑 ]
顶端 Posted: 2006-09-09 13:13 | [楼 主]
minpayne



性别: 帅哥 状态: 该用户目前不在线
头衔: ...pure love...
等级: 字幕组
家族: 燕窝
发贴: 1747
威望: 5
浮云: 205
在线等级:
注册时间: 2005-09-20
最后登陆: 2008-04-06

5come5帮你背单词 [ peanut /'pi:nΛt/ n. 花生 ]


看下面
顶端 Posted: 2006-09-09 13:28 | [1 楼]
minpayne



性别: 帅哥 状态: 该用户目前不在线
头衔: ...pure love...
等级: 字幕组
家族: 燕窝
发贴: 1747
威望: 5
浮云: 205
在线等级:
注册时间: 2005-09-20
最后登陆: 2008-04-06

5come5帮你背单词 [ outlook /'aut-luk/ n. 景色,风光,观点风解,前景,前途 ]


void Init(Stack *S)
{
S=(Stack *)malloc(sizeof(Stack));
if(S=NULL)
{
  printf("failed!\n");
}
S->top=1;  
printf("***size***:%d\n",S->top);
}

这里IF语句中应该是==不是=
malloc应该在INT MAIN()里面,不该在函数体内,因为函数调用完时那块空间会被释放
顶端 Posted: 2006-09-09 13:31 | [2 楼]
minpayne



性别: 帅哥 状态: 该用户目前不在线
头衔: ...pure love...
等级: 字幕组
家族: 燕窝
发贴: 1747
威望: 5
浮云: 205
在线等级:
注册时间: 2005-09-20
最后登陆: 2008-04-06

5come5帮你背单词 [ interchange /intə:'teind3ə/ v. 交换,互换,轮流进行;n. 交换,交替,立体交叉道路 ]


我编辑了以下 有两个问题哈
顶端 Posted: 2006-09-09 13:36 | [3 楼]
minpayne



性别: 帅哥 状态: 该用户目前不在线
头衔: ...pure love...
等级: 字幕组
家族: 燕窝
发贴: 1747
威望: 5
浮云: 205
在线等级:
注册时间: 2005-09-20
最后登陆: 2008-04-06

5come5帮你背单词 [ diverse /dai'və:s/ a. 不同的,多种多样的 ]


我用GCC已经调通了
顶端 Posted: 2006-09-09 13:36 | [4 楼]
minpayne



性别: 帅哥 状态: 该用户目前不在线
头衔: ...pure love...
等级: 字幕组
家族: 燕窝
发贴: 1747
威望: 5
浮云: 205
在线等级:
注册时间: 2005-09-20
最后登陆: 2008-04-06

5come5帮你背单词 [ screwdriver /'skru:draivə/ n. 螺丝刀 ]


是1,1
顶端 Posted: 2006-09-09 13:44 | [5 楼]
minpayne



性别: 帅哥 状态: 该用户目前不在线
头衔: ...pure love...
等级: 字幕组
家族: 燕窝
发贴: 1747
威望: 5
浮云: 205
在线等级:
注册时间: 2005-09-20
最后登陆: 2008-04-06

5come5帮你背单词 [ ham /hæm/ n. 火腿,无线电收发报业余爱好者 ]


#include <stdio.h>
#include <malloc.h>
#define MAX 20

typedef struct
{
int top;
int e[MAX];
}Stack;

void Init(Stack *S);

void main()
{
int elem;
Stack *s=(Stack *)malloc(sizeof(Stack));
Init(s);
printf("now the stack's size is:%d\n",s->top);
}  


void Init(Stack *S)
{
/*S=(Stack *)malloc(sizeof(Stack));*/
if(S==NULL)
{
  printf("failed!\n");
}
S->top=1;  
printf("***size***:%d\n",S->top);
}

你是不是改成这样?
顶端 Posted: 2006-09-09 13:48 | [6 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.012821(s) query 8, Time now is:05-29 07:49, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号