主题:栈问题求教
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define INIT_SIZE 100
#define INCREMENT 10
typedef struct {
int *base;
int *top;
int stacksize;
}Sqstack;
Sqstack *create(Sqstack *cur){
cur=(Sqstack *)malloc(INIT_SIZE*sizeof(Sqstack));
if(!cur->base) exit(-1);
cur->top=cur->base;
cur->stacksize=INIT_SIZE;
return cur;
}
Sqstack *push(Sqstack *cur,int data){
cur->top++;
[color=FF0000]*(cur->top)=data;//?????????什么问题?[/color]
printf("%d",*(cur->top));
return cur;
}
void display(Sqstack *cur){
int *temp=NULL;
temp=cur->base;
while(temp!=cur->top){
printf("%d ",*temp);
temp++;
}
}
void main(){
Sqstack *cur=NULL,*temp=NULL,*temp2=NULL;
int data=0;
temp=create(cur);
printf("%d,%d",temp->stacksize,temp->top);
printf("input your data:");
scanf("%d",&data);
temp2=push(temp,data);
printf("%d,%d",temp2->stacksize,temp2->top);
display(temp2);
free(temp);
}
这段代码编译可以通过,但是无法运行!我调试了一下好像是红色那句有问题,debug我也不是很了解所以不知道是不是真是那句的问题,如果是问题出在哪?希望高手能解答
#include <malloc.h>
#include <stdlib.h>
#define INIT_SIZE 100
#define INCREMENT 10
typedef struct {
int *base;
int *top;
int stacksize;
}Sqstack;
Sqstack *create(Sqstack *cur){
cur=(Sqstack *)malloc(INIT_SIZE*sizeof(Sqstack));
if(!cur->base) exit(-1);
cur->top=cur->base;
cur->stacksize=INIT_SIZE;
return cur;
}
Sqstack *push(Sqstack *cur,int data){
cur->top++;
[color=FF0000]*(cur->top)=data;//?????????什么问题?[/color]
printf("%d",*(cur->top));
return cur;
}
void display(Sqstack *cur){
int *temp=NULL;
temp=cur->base;
while(temp!=cur->top){
printf("%d ",*temp);
temp++;
}
}
void main(){
Sqstack *cur=NULL,*temp=NULL,*temp2=NULL;
int data=0;
temp=create(cur);
printf("%d,%d",temp->stacksize,temp->top);
printf("input your data:");
scanf("%d",&data);
temp2=push(temp,data);
printf("%d,%d",temp2->stacksize,temp2->top);
display(temp2);
free(temp);
}
这段代码编译可以通过,但是无法运行!我调试了一下好像是红色那句有问题,debug我也不是很了解所以不知道是不是真是那句的问题,如果是问题出在哪?希望高手能解答