c语言的初始化函数问题

#include"stdio.h"#defineN10typedefstruct{intbase[N];inttop;}SqStack;voidInitStack(SqS... #include "stdio.h"
#define N 10
typedef struct{
int base[N];
int top;
}SqStack;
void InitStack(SqStack S)
{
int i;
for(i=0;i<N;i++)
S.base[i]=0;
S.top=0;
}
Push(SqStack S,int k)
{
S.base[S.top++]=k;
}
/*Bag_problem(int w[],int T,int n)
{
int k;
do
{
while(T>0&&k<n)
{
if(T-w[k]>=0)
{
Push(S,k)
T-=w[k];
}
k++;
}
if(T=0);
Pop(S,k);
k=S.;
k++;
}while(!);
}*/
void main()
{
SqStack S;
InitStack(S);
printf("%d",S.top);
}
请问我初始化错在哪里
运行本来想预计的结果是S.top的值为0
展开
 我来答
songwanqiang
2010-09-26 · TA获得超过2399个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:943万
展开全部
void InitStack(SqStack *S)
{
int i;
for(i=0;i<N;i++)
S->base[i]=0;
S->top=0;
}
C中函数参数是按值传递,你那样写修改的是复制的副本,本身没有修改,传递指针,间接修改。
其他的函数也一样,都需要传递指针。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式