关于建立栈的问题
建立的栈如下但是一直运行不出来 求助大佬帮忙看看#include<stdio.h>
#include<stdlib.h>
#define stacksize 20
#define stackincrement 10
typedef struct{
int *top;
int *base;
int stackSize;
}sqstack;
void init(sqstack *s)
{
s->base = (int *)malloc(sizeof(int));
if(!s->base)
{
return;
}
s->top=s->base;
s->stackSize=stacksize;
}
int main(){
sqstack *s;
int e,len;
init(s);
printf("栈已经初始化完毕");
return 0;
} 首先
1. 初始化,要一定是实体,你在这里sqstack *s;,
应该是
sqstack s;
init(&s);
你在这里,只是申请了一个指针而已,并没有实现一个实例;
2. s->base = (int *)malloc(sizeof(int));
你应该 s->base = (int *)malloc(sizeof(int)*stacksize ); 代号-K 发表于 2020-3-10 16:02
首先
1. 初始化,要一定是实体,你在这里,
应该是
最后是不是还要把函数体里面的“->” 都改为 "." 并且主函数 定义一个结构体变量 sqstack s 然后 init(s)调用? SmithDimon 发表于 2020-3-10 22:33
最后是不是还要把函数体里面的“->” 都改为 "." 并且主函数 定义一个结构体变量 sqstack s 然后 init( ...
对的,后面调用要 传入地址 init(&s);
页:
[1]