C
Chapman
I tried to run this code after compiling it but it always gives me the stack
dump...Anyone can give me advice? Thanks
#include <stdio.h>
typedef struct stack {
int data;
struct stack *next;
} stack;
void push(stack *s, int x);
int pop(stack *s);
int empty(stack **s);
int main() {
int m, n, result;
stack *st = NULL;
push(st, 2);
push(st, 3);
m = pop(st);
n = pop(st);
result = m + n;
printf("The result is %d\n", result);
return 0;
}
int empty(stack **s) {
return ((*s == NULL) ? 1 : 0);
}
void push(stack *s, int x) {
stack *ptr;
ptr = (stack *)malloc(sizeof(stack));
ptr->data = x;
ptr->next = s->data;
s->data = ptr;
}
int pop(stack *s) {
int p;
stack *ptr;
if (s->data != NULL) {
ptr = s->data;
p = ptr->data;
s->data = ptr->next;
}
return p;
}
dump...Anyone can give me advice? Thanks
#include <stdio.h>
typedef struct stack {
int data;
struct stack *next;
} stack;
void push(stack *s, int x);
int pop(stack *s);
int empty(stack **s);
int main() {
int m, n, result;
stack *st = NULL;
push(st, 2);
push(st, 3);
m = pop(st);
n = pop(st);
result = m + n;
printf("The result is %d\n", result);
return 0;
}
int empty(stack **s) {
return ((*s == NULL) ? 1 : 0);
}
void push(stack *s, int x) {
stack *ptr;
ptr = (stack *)malloc(sizeof(stack));
ptr->data = x;
ptr->next = s->data;
s->data = ptr;
}
int pop(stack *s) {
int p;
stack *ptr;
if (s->data != NULL) {
ptr = s->data;
p = ptr->data;
s->data = ptr->next;
}
return p;
}