30/09/2018, 23:56
Lỗi lập trình Stack trong C++!
#include<iostream>
using namespace std;
struct Node {
int data;
Node *next;
};
struct Stack {
Node *top;
int count;
};
void createStack(Stack *&s) {
s->top = NULL;
}
bool isEmptyStack(Stack *s) {
bool kq = s->top == NULL;
return kq;
}
void Push(Stack *&s, int data) {
Node *p = new Node;
p->data = data;
p->next = s->top;
s->top = p;
s->count++;
}
int main() {
Stack *s = new Stack;
Push(s, 5);
Push(s, 7);
Push(s, 9);
while (s->top!= NULL) {
cout << s->top->data; // em bị Break chỗ này nhưng chưa tại sao ạ ?
s->top = s->top->next;
}
}
Em bị các số khi thêm vào stack nhưng bị break , mong anh chị giúp em ! Em cảm ơn !
Bài liên quan
s->top lúc khởi tạo của bạn không bằng NULL và bị trỏ tới một địa chỉ nào đó.
Vậy nên ở vòng while nó ko dừng lại + bị lỗi do truy cập ô nhớ tào lao / không cho phép.
Muốn sửa thì chỉ cần s->top = NULL sau khi khởi tạo Stack.