主题:初始化栈遇到的问题,帮忙看一下,新手学习中
//以下是一个用于初始化栈的程序,我用的编译器是devcpp,用VC报同样的错
//请帮忙看一下哪儿错了,感激不尽
#include<stdio.h>
#include<malloc.h>
#define STACK_INIT_SIZE 100;
typedef struct{
int *top;
int *base;
int stacksize;
}SqStack;
void initstack(SqStack& S);
void check(SqStack S);
int main()
{
SqStack S;
printf("输入要创建的栈的元素:");
initstack(S);
printf("你创建的栈为:");
check(S);
system("pause");
return 0;
}
void initstack(SqStack& S)
//初始化栈
{
int *p;
int i;
S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
//在这里如果用STACK_INIT_SIZE会出错,如果改成具体数字则能成功运行
if(!S.base) exit(0);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
p=S.base;
for(i=0;i<S.stacksize;i++)
{
scanf("%d",p++);
S.top++;
}
}
void check(SqStack S)
//用于回显栈中元素
{
int *p;
for(p=S.base;p<S.top;p++)
printf("%d ",*p);
}
//请帮忙看一下哪儿错了,感激不尽
#include<stdio.h>
#include<malloc.h>
#define STACK_INIT_SIZE 100;
typedef struct{
int *top;
int *base;
int stacksize;
}SqStack;
void initstack(SqStack& S);
void check(SqStack S);
int main()
{
SqStack S;
printf("输入要创建的栈的元素:");
initstack(S);
printf("你创建的栈为:");
check(S);
system("pause");
return 0;
}
void initstack(SqStack& S)
//初始化栈
{
int *p;
int i;
S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
//在这里如果用STACK_INIT_SIZE会出错,如果改成具体数字则能成功运行
if(!S.base) exit(0);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
p=S.base;
for(i=0;i<S.stacksize;i++)
{
scanf("%d",p++);
S.top++;
}
}
void check(SqStack S)
//用于回显栈中元素
{
int *p;
for(p=S.base;p<S.top;p++)
printf("%d ",*p);
}