#include"stdio.h"
#include<iostream.h>
#include<stdlib.h>
typedef struct{
int data;
}SElemType;
typedef struct SqStack{
SElemType data;
struct SqStack *next;
}SqStack,*LinkStack;
int init(SqStack *S);
int push(LinkStack S,SElemType e);
int Pop(LinkStack S,SElemType e);
void main()
{
int count,n,temp;
SElemType e;
count=0;
SqStack S;
init(&S);
printf("请输入一个10进制的数:");
scanf("%d",&n);
printf("转换为8进制的数:");
while(n!=0)
{
temp=n%8;
e.data=temp;
push(&S,e);
n=n/8;
count++;
}
for(int i=0;i<count;i++)
{
Pop(&S,e);
}
}
int init(SqStack *S)
{
S=NULL;
return 1;
}
int push(LinkStack S,SElemType e){
SqStack *q;
q=new SqStack;
q->data=e;
q->next=S;
S=q;
return 1;
}
int Pop(LinkStack S,SElemType e){
if(S==NULL) printf("空栈!\n");
SqStack *p = new SqStack;
e = S->data;
p = S;
S = S->next;
printf("%d",e.data);
delete p;
return 1;
#include<iostream.h>
#include<stdlib.h>
typedef struct{
int data;
}SElemType;
typedef struct SqStack{
SElemType data;
struct SqStack *next;
}SqStack,*LinkStack;
int init(SqStack *S);
int push(LinkStack S,SElemType e);
int Pop(LinkStack S,SElemType e);
void main()
{
int count,n,temp;
SElemType e;
count=0;
SqStack S;
init(&S);
printf("请输入一个10进制的数:");
scanf("%d",&n);
printf("转换为8进制的数:");
while(n!=0)
{
temp=n%8;
e.data=temp;
push(&S,e);
n=n/8;
count++;
}
for(int i=0;i<count;i++)
{
Pop(&S,e);
}
}
int init(SqStack *S)
{
S=NULL;
return 1;
}
int push(LinkStack S,SElemType e){
SqStack *q;
q=new SqStack;
q->data=e;
q->next=S;
S=q;
return 1;
}
int Pop(LinkStack S,SElemType e){
if(S==NULL) printf("空栈!\n");
SqStack *p = new SqStack;
e = S->data;
p = S;
S = S->next;
printf("%d",e.data);
delete p;
return 1;
}
大佬们 我这里运行出现 debug assertion failed 错误 想问下 哪里出现了 野指针